1
0
mirror of https://github.com/locomotivemtl/locomotive-boilerplate.git synced 2026-01-15 00:55:08 +08:00

Reworking page visibility API + Adding more utils

This commit is contained in:
dominiclord
2016-05-19 13:37:19 -04:00
parent b2abd51191
commit bb757a22f6
7 changed files with 555 additions and 53 deletions

View File

@@ -1,5 +1,5 @@
/* jshint esnext: true */
import { registerDocumentHiddenCallback, registerDocumentVisibleCallback } from '../utils/visibility';
import { visibilityApi } from '../utils/visibility';
import AbstractModule from './AbstractModule';
export default class extends AbstractModule {
@@ -8,12 +8,22 @@ export default class extends AbstractModule {
this.$label = this.$el.find('.js-label');
this.$document.on('title.changeLabel', (event, value) => {
this.$document.on('Title.changeLabel', (event, value) => {
this.changeLabel(value);
this.destroy();
});
registerDocumentHiddenCallback(this.logHidden);
registerDocumentVisibleCallback(this.logVisible);
this.hiddenCallbackIdent = visibilityApi({
action: 'addCallback',
state: 'hidden',
callback: this.logHidden
});
this.visibleCallbackIdent = visibilityApi({
action: 'addCallback',
state: 'visible',
callback: this.logVisible
});
}
logHidden() {
@@ -29,7 +39,20 @@ export default class extends AbstractModule {
}
destroy() {
this.$document.off('title.changeLabel');
this.$document.off('Title.changeLabel');
visibilityApi({
action: 'removeCallback',
state: 'hidden',
ident: this.hiddenCallbackIdent
});
visibilityApi({
action: 'removeCallback',
state: 'visible',
ident: this.visibleCallbackIdent
});
this.$el.off('.Title');
}
}