set cssClass and other note related classes on the root widget instead, fixes #1799

This commit is contained in:
zadam
2021-03-28 22:24:24 +02:00
parent 2e6cd5f809
commit 57db945558
11 changed files with 58 additions and 38 deletions

View File

@@ -0,0 +1,42 @@
import FlexContainer from "./flex_container.js";
import utils from "../../services/utils.js";
import appContext from "../../services/app_context.js";
export default class RootContainer extends FlexContainer {
constructor() {
super('column');
this.id('root-widget');
this.css('height', '100vh');
}
refresh() {
this.$widget.removeClass(); // remove all classes
const note = appContext.tabManager.getActiveTabNote();
if (note) {
this.$widget.addClass(note.getCssClass());
this.$widget.addClass(utils.getNoteTypeClass(note.type));
this.$widget.addClass(utils.getMimeTypeClass(note.mime));
this.$widget.toggleClass("protected", note.isProtected);
}
}
tabNoteSwitchedEvent() {
this.refresh();
}
activeTabChangedEvent() {
this.refresh();
}
tabNoteSwitchedAndActivatedEvent() {
this.refresh();
}
noteTypeMimeChangedEvent() {
this.refresh();
}
}