fix loading of custom widgets

This commit is contained in:
zadam 2020-03-16 23:25:52 +01:00
parent a7ddc33b6d
commit 141d4593ca
4 changed files with 29 additions and 10 deletions

View File

@ -30,10 +30,30 @@ async function executeStartupBundles() {
}
}
class WidgetsByParent {
constructor() {
this.byParent = {};
}
add(widget) {
if (!widget.parentWidget) {
console.log(`Custom widget does not have mandatory 'getParent()' method defined`);
return;
}
this.byParent[widget.parentWidget] = this.byParent[widget.parentWidget] || [];
this.byParent[widget.parentWidget].push(widget);
}
get(parentName) {
return this.byParent[parentName] || [];
}
}
async function getWidgetBundlesByParent() {
const scriptBundles = await server.get("script/widgets");
const byParent = {};
const widgetsByParent = new WidgetsByParent();
for (const bundle of scriptBundles) {
let widget;
@ -46,16 +66,10 @@ async function getWidgetBundlesByParent() {
continue;
}
if (!widget.parentWidget) {
console.log(`Custom widget does not have mandatory 'getParent()' method defined`);
continue;
}
byParent[widget.parentWidget] = byParent[widget.parentWidget] || [];
byParent[widget.parentWidget].push(widget);
widgetsByParent.add(widget);
}
return byParent;
return widgetsByParent;
}
export default {

View File

@ -148,7 +148,7 @@ export default class DesktopLayout {
.child(new TabCachingWidget(() => new NoteRevisionsWidget()))
.child(new TabCachingWidget(() => new SimilarNotesWidget()))
.child(new TabCachingWidget(() => new WhatLinksHereWidget()))
.child(...this.customWidgets['right-pane'])
.child(...this.customWidgets.get('right-pane'))
)
.child(new SidePaneToggles().hideInZenMode())
);

View File

@ -16,6 +16,10 @@ export default class FlexContainer extends BasicWidget {
}
child(...components) {
if (!components) {
return this;
}
super.child(...components);
for (const component of components) {

View File

@ -33,6 +33,7 @@ async function createMainWindow() {
height: mainWindowState.height,
title: 'Trilium Notes',
webPreferences: {
enableRemoteModule: true,
nodeIntegration: true,
spellcheck: spellcheckEnabled
},