fix: note editor ui promise

fix: temp note not deleted after export
This commit is contained in:
xiangyu 2022-04-30 22:39:45 +08:00
parent 738ebf2057
commit 0e8af756d0
4 changed files with 26 additions and 23 deletions

View File

@ -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",

View File

@ -443,8 +443,8 @@ class Knowledge extends AddonBase {
item.setNote(`<div data-schema-version="8">${newLines.join("\n")}</div>`);
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();

View File

@ -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<void>((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(

2
typing/global.d.ts vendored
View File

@ -151,7 +151,7 @@ declare class ZoteroCollection {
declare class Zotero_File_Exporter {
items: ZoteroItem[];
save: () => void;
save = async () => {};
}
declare const Components: any;