first commit

This commit is contained in:
yehongyu
2026-07-20 14:40:17 +08:00
commit 50fd043a2d
55 changed files with 7786 additions and 0 deletions
+58
View File
@@ -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,
};