activator-oce-exporter
Version:
Extract Activator binder and convert it to valid OCE mono pacakge
30 lines (25 loc) • 875 B
JavaScript
import { FusionStore } from '../services/fusion-store';
/**
* Listens to editor mode changes and adds 'edit-mode' className to the root element
*/
export function ModeTrackable(superClass) {
return class extends superClass {
handleEditorMode(isEditMode) {
const method = isEditMode ? 'add' : 'remove';
this.classList[method]('edit-mode');
return this.editorModeChanged && this.editorModeChanged(isEditMode);
}
connectedCallback() {
super.connectedCallback();
this.handleEditorMode(FusionStore.store.getState().app.isEditMode);
this.unsubscribe = FusionStore.subscribe('app.isEditMode', (state) => {
this.handleEditorMode(state.app.isEditMode);
});
}
disconnectedCallback() {
super.disconnectedCallback();
this.unsubscribe();
}
};
}
ModeTrackable.EditModeClassName = 'edit-mode';