diff --git a/src/events.ts b/src/events.ts index 5a1e4c4..3783936 100644 --- a/src/events.ts +++ b/src/events.ts @@ -79,7 +79,7 @@ class AddonEvents extends AddonBase { message.content.editorInstance._item.id === mainKnowledgeID; Zotero.debug(`Knowledge4Zotero: main Knowledge`); - this._Addon.views.addEditorButton( + await this._Addon.views.addEditorButton( message.content.editorInstance, "workspace", isMainKnowledge ? "isMainKnowledge" : "notMainKnowledge", @@ -89,7 +89,7 @@ class AddonEvents extends AddonBase { "start", new EditorMessage("openWorkspace", {}) ); - this._Addon.views.addEditorButton( + await this._Addon.views.addEditorButton( message.content.editorInstance, "addToKnowledge", "addToKnowledge", @@ -99,7 +99,7 @@ class AddonEvents extends AddonBase { itemID: message.content.editorInstance._item.id, }) ); - this._Addon.views.addEditorButton( + await this._Addon.views.addEditorButton( message.content.editorInstance, "export", "export", diff --git a/src/knowledge.ts b/src/knowledge.ts index 3549673..2691e3d 100644 --- a/src/knowledge.ts +++ b/src/knowledge.ts @@ -443,8 +443,8 @@ class Knowledge extends AddonBase { item.setNote(`
${newLines.join("\n")}
`); item.saveTx(); exporter.items = [item]; - exporter.save(); - Zotero.Items.erase(item.id); + await exporter.save(); + await Zotero.Items.erase(item.id); } else { exporter.items = [note]; exporter.save(); diff --git a/src/views.ts b/src/views.ts index 0550c0a..dea284b 100644 --- a/src/views.ts +++ b/src/views.ts @@ -28,23 +28,26 @@ class AddonViews extends AddonBase { async addEditorKnowledgeToolBar(editorInstances: EditorInstance) { await editorInstances._initPromise; - const _document = editorInstances._iframeWindow.document; - const knowledgeToolBar = _document.createElement("div"); - knowledgeToolBar.setAttribute("id", "knowledge-tools"); - knowledgeToolBar.setAttribute("class", "toolbar"); - const start = _document.createElement("div"); - start.setAttribute("id", "knowledge-tools-start"); - start.setAttribute("class", "start"); - const middle = _document.createElement("div"); - middle.setAttribute("id", "knowledge-tools-middle"); - middle.setAttribute("class", "middle"); - const end = _document.createElement("div"); - end.setAttribute("id", "knowledge-tools-end"); - end.setAttribute("class", "end"); - knowledgeToolBar.append(start, middle, end); - _document - .getElementsByClassName("editor")[0] - .childNodes[0].before(knowledgeToolBar); + await new Promise((resolve, reject) => { + const _document = editorInstances._iframeWindow.document; + const knowledgeToolBar = _document.createElement("div"); + knowledgeToolBar.setAttribute("id", "knowledge-tools"); + knowledgeToolBar.setAttribute("class", "toolbar"); + const start = _document.createElement("div"); + start.setAttribute("id", "knowledge-tools-start"); + start.setAttribute("class", "start"); + const middle = _document.createElement("div"); + middle.setAttribute("id", "knowledge-tools-middle"); + middle.setAttribute("class", "middle"); + const end = _document.createElement("div"); + end.setAttribute("id", "knowledge-tools-end"); + end.setAttribute("class", "end"); + knowledgeToolBar.append(start, middle, end); + _document + .getElementsByClassName("editor")[0] + .childNodes[0].before(knowledgeToolBar); + resolve(); + }); } async addEditorButton( diff --git a/typing/global.d.ts b/typing/global.d.ts index e4cdbbe..269666a 100644 --- a/typing/global.d.ts +++ b/typing/global.d.ts @@ -151,7 +151,7 @@ declare class ZoteroCollection { declare class Zotero_File_Exporter { items: ZoteroItem[]; - save: () => void; + save = async () => {}; } declare const Components: any;