fix: close dialog when shutdown

This commit is contained in:
windingwind 2023-06-12 22:56:44 +08:00
parent 671315e9ad
commit c4fc2c44e7
3 changed files with 9 additions and 3 deletions

View File

@ -17,6 +17,7 @@ class Addon {
columns: Array<ColumnOptions>;
rows: Array<{ [dataKey: string]: string }>;
};
dialog?: DialogHelper;
};
// Lifecycle hooks
public hooks: typeof hooks;
@ -53,6 +54,7 @@ class Addon {
import { BasicTool, unregister } from "zotero-plugin-toolkit/dist/basic";
import { UITool } from "zotero-plugin-toolkit/dist/tools/ui";
import { PreferencePaneManager } from "zotero-plugin-toolkit/dist/managers/preferencePane";
import { DialogHelper } from "zotero-plugin-toolkit/dist/helpers/dialog";
export class MyToolkit extends BasicTool {
UI: UITool;

View File

@ -83,6 +83,7 @@ async function onStartup() {
function onShutdown(): void {
ztoolkit.unregisterAll();
addon.data.dialog?.window?.close();
// Remove addon object
addon.data.alive = false;
delete Zotero[config.addonInstance];

View File

@ -922,10 +922,13 @@ export class HelperExampleFactory {
})
.setDialogData(dialogData)
.open("Dialog Example");
addon.data.dialog = dialogHelper;
await dialogData.unloadLock.promise;
ztoolkit.getGlobal("alert")(
`Close dialog with ${dialogData._lastButtonId}.\nCheckbox: ${dialogData.checkboxValue}\nInput: ${dialogData.inputValue}.`
);
addon.data.dialog = undefined;
addon.data.alive &&
ztoolkit.getGlobal("alert")(
`Close dialog with ${dialogData._lastButtonId}.\nCheckbox: ${dialogData.checkboxValue}\nInput: ${dialogData.inputValue}.`
);
ztoolkit.log(dialogData);
}