Merge branch 'master' into next55

# Conflicts:
#	electron.js
#	package-lock.json
#	package.json
#	src/public/app/layouts/desktop_layout.js
#	src/public/app/widgets/note_tree.js
#	src/services/port.js
This commit is contained in:
zadam
2022-10-15 12:09:25 +02:00
112 changed files with 1817 additions and 418 deletions

View File

@@ -123,7 +123,7 @@ export default class NoteDetailWidget extends NoteContextAwareWidget {
async refresh() {
this.type = await this.getWidgetType();
this.mime = this.note ? this.note.mime : null;
this.mime = this.note?.mime;
if (!(this.type in this.typeWidgets)) {
const clazz = typeWidgetClasses[this.type];
@@ -279,10 +279,14 @@ export default class NoteDetailWidget extends NoteContextAwareWidget {
}
async entitiesReloadedEvent({loadResults}) {
if (loadResults.isNoteContentReloaded(this.noteId, this.componentId)
|| (loadResults.isNoteReloaded(this.noteId, this.componentId) && (this.type !== await this.getWidgetType() || this.mime !== this.note.mime))) {
// we're detecting note type change on the note_detail level, but triggering the noteTypeMimeChanged
// globally, so it gets also to e.g. ribbon components. But this means that the event can be generated multiple
// times if the same note is open in several tabs.
this.handleEvent('noteTypeMimeChanged', {noteId: this.noteId});
if (loadResults.isNoteReloaded(this.noteId, this.componentId)
&& (this.type !== await this.getWidgetType() || this.mime !== this.note.mime)) {
this.triggerEvent('noteTypeMimeChanged', {noteId: this.noteId});
}
else {
const attrs = loadResults.getAttributes();
@@ -300,7 +304,7 @@ export default class NoteDetailWidget extends NoteContextAwareWidget {
if (label || relation) {
// probably incorrect event
// calling this.refresh() is not enough since the event needs to be propagated to children as well
this.handleEvent('noteTypeMimeChanged', {noteId: this.noteId});
this.triggerEvent('noteTypeMimeChanged', {noteId: this.noteId});
}
}
}