fix showing/hiding of type widgets

This commit is contained in:
zadam 2020-02-25 12:24:37 +01:00
parent a2fe110400
commit 41d1d83dc2
4 changed files with 13 additions and 12 deletions

View file

@ -71,7 +71,7 @@ window.onerror = function (msg, url, lineNo, columnNo, error) {
protectedSessionHolder.setProtectedSessionId(null);
for (const appCssNoteId of window.appCssNoteIds || []) {
for (const appCssNoteId of glob.appCssNoteIds || []) {
libraryLoader.requireCss(`api/notes/download/${appCssNoteId}`);
}

View file

@ -101,7 +101,7 @@ export default class NoteDetailWidget extends TabAwareWidget {
this.toggle(true);
this.type = await this.getWidgetType();
this.mime = this.note.mime;
this.mime = this.note ? this.note.mime : null;
if (!(this.type in this.typeWidgets)) {
const clazz = typeWidgetClasses[this.type];
@ -164,6 +164,8 @@ export default class NoteDetailWidget extends TabAwareWidget {
const noteComplement = await this.tabContext.getNoteComplement();
console.log(note, noteComplement);
if (utils.isHtmlEmpty(noteComplement.content)) {
type = 'book';
}

View file

@ -36,10 +36,6 @@ export default class EmptyTypeWidget extends TypeWidget {
return this.$widget;
}
refresh() {
this.toggle(!this.tabContext.note);
}
getContent() {}
focus() {}

View file

@ -1,6 +1,13 @@
import TabAwareWidget from "../tab_aware_widget.js";
export default class TypeWidget extends TabAwareWidget {
constructor(parent) {
super(parent);
/** @var {NoteDetailWidget} */
this.noteDetailWidget = parent;
}
// for overriding
static getType() {}
@ -10,13 +17,9 @@ export default class TypeWidget extends TabAwareWidget {
doRefresh(note) {}
refresh() {
const note = this.tabContext.note;
const widgetType = this.constructor.getType();
if (!note
|| (note.type !== widgetType
&& (note.type !== 'text' || widgetType !== 'book') // text can be rendered as book if it does not have content
&& (widgetType !== 'protected-session' || !note.isProtected))) {
if (widgetType !== this.noteDetailWidget.type) {
this.toggle(false);
this.cleanup();
@ -24,7 +27,7 @@ export default class TypeWidget extends TabAwareWidget {
else {
this.toggle(true);
this.doRefresh(note);
this.doRefresh(this.note);
}
}