first commit
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import { initLocale } from "./utils/locale";
|
||||
import { createZToolkit } from "./utils/ztoolkit";
|
||||
import { registerChatPane, registerPrefs } from "./modules/ui/readerPane";
|
||||
import { registerPrefsScripts } from "./modules/ui/prefs";
|
||||
|
||||
async function onStartup() {
|
||||
await Promise.all([
|
||||
Zotero.initializationPromise,
|
||||
Zotero.unlockPromise,
|
||||
Zotero.uiReadyPromise,
|
||||
]);
|
||||
|
||||
initLocale();
|
||||
registerPrefs();
|
||||
registerChatPane();
|
||||
|
||||
await Promise.all(
|
||||
Zotero.getMainWindows().map((win) => onMainWindowLoad(win)),
|
||||
);
|
||||
|
||||
addon.data.initialized = true;
|
||||
}
|
||||
|
||||
async function onMainWindowLoad(win: _ZoteroTypes.MainWindow): Promise<void> {
|
||||
addon.data.ztoolkit = createZToolkit();
|
||||
win.MozXULElement.insertFTLIfNeeded(
|
||||
`${addon.data.config.addonRef}-mainWindow.ftl`,
|
||||
);
|
||||
}
|
||||
|
||||
async function onMainWindowUnload(_win: Window): Promise<void> {
|
||||
ztoolkit.unregisterAll();
|
||||
}
|
||||
|
||||
function onShutdown(): void {
|
||||
ztoolkit.unregisterAll();
|
||||
addon.data.alive = false;
|
||||
// @ts-expect-error - Plugin instance is not typed
|
||||
delete Zotero[addon.data.config.addonInstance];
|
||||
}
|
||||
|
||||
async function onPrefsEvent(type: string, data: { [key: string]: any }) {
|
||||
switch (type) {
|
||||
case "load":
|
||||
registerPrefsScripts(data.window);
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
onStartup,
|
||||
onShutdown,
|
||||
onMainWindowLoad,
|
||||
onMainWindowUnload,
|
||||
onPrefsEvent,
|
||||
};
|
||||
Reference in New Issue
Block a user