Skip to content

Commit aab70e5

Browse files
committed
1 parent bb18f95 commit aab70e5

File tree

5 files changed

+10
-96
lines changed

5 files changed

+10
-96
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "zotero-better-authors",
33
"version": "4.3.4",
44
"description": "Zotero Better Authors",
5+
"type": "module",
56
"packageManager": "[email protected]",
67
"config": {
78
"addonName": "Zotero Better Authors",

src/addon.ts

-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { ColumnOptions } from "zotero-plugin-toolkit/dist/helpers/virtualizedTable";
2-
import { DialogHelper } from "zotero-plugin-toolkit/dist/helpers/dialog";
31
import hooks from "./hooks";
42
import { createZToolkit } from "./utils/ztoolkit";
53

@@ -14,10 +12,7 @@ class Addon {
1412
};
1513
prefs?: {
1614
window: Window;
17-
columns: Array<ColumnOptions>;
18-
rows: Array<{ [dataKey: string]: string }>;
1915
};
20-
dialog?: DialogHelper;
2116
};
2217
// Lifecycle hooks
2318
public hooks: typeof hooks;

src/hooks.ts

-2
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,10 @@ async function onMainWindowLoad(win: Window): Promise<void> {
3737

3838
async function onMainWindowUnload(win: Window): Promise<void> {
3939
ztoolkit.unregisterAll();
40-
addon.data.dialog?.window?.close();
4140
}
4241

4342
function onShutdown(): void {
4443
ztoolkit.unregisterAll();
45-
addon.data.dialog?.window?.close();
4644
// Remove addon object
4745
addon.data.alive = false;
4846
// @ts-ignore - Plugin instance is not typed

src/modules/preferenceScript.ts

-84
Original file line numberDiff line numberDiff line change
@@ -8,97 +8,13 @@ export async function registerPrefsScripts(_window: Window) {
88
if (!addon.data.prefs) {
99
addon.data.prefs = {
1010
window: _window,
11-
columns: [
12-
{
13-
dataKey: "title",
14-
label: getString("prefs-table-title"),
15-
fixedWidth: true,
16-
width: 100,
17-
},
18-
{
19-
dataKey: "detail",
20-
label: getString("prefs-table-detail"),
21-
},
22-
],
23-
rows: [
24-
{
25-
title: "Orange",
26-
detail: "It's juicy",
27-
},
28-
],
2911
};
3012
} else {
3113
addon.data.prefs.window = _window;
3214
}
33-
// updatePrefsUI();
3415
bindPrefEvents();
3516
}
3617

37-
async function updatePrefsUI() {
38-
// You can initialize some UI elements on prefs window
39-
// with addon.data.prefs.window.document
40-
// Or bind some events to the elements
41-
const renderLock = ztoolkit.getGlobal("Zotero").Promise.defer();
42-
if (addon.data.prefs?.window == undefined) return;
43-
const tableHelper = new ztoolkit.VirtualizedTable(addon.data.prefs?.window)
44-
.setContainerId(`${config.addonRef}-table-container`)
45-
.setProp({
46-
id: `${config.addonRef}-prefs-table`,
47-
// Do not use setLocale, as it modifies the Zotero.Intl.strings
48-
// Set locales directly to columns
49-
columns: addon.data.prefs?.columns,
50-
showHeader: true,
51-
multiSelect: true,
52-
staticColumns: true,
53-
disableFontSizeScaling: true,
54-
})
55-
.setProp("getRowCount", () => addon.data.prefs?.rows.length || 0)
56-
.setProp(
57-
"getRowData",
58-
(index) =>
59-
addon.data.prefs?.rows[index] || {
60-
title: "no data",
61-
detail: "no data",
62-
},
63-
)
64-
// Show a progress window when selection changes
65-
.setProp("onSelectionChange", (selection) => {
66-
new ztoolkit.ProgressWindow(config.addonName)
67-
.createLine({
68-
text: `Selected line: ${addon.data.prefs?.rows
69-
.filter((v, i) => selection.isSelected(i))
70-
.map((row) => row.title)
71-
.join(",")}`,
72-
progress: 100,
73-
})
74-
.show();
75-
})
76-
// When pressing delete, delete selected line and refresh table.
77-
// Returning false to prevent default event.
78-
.setProp("onKeyDown", (event: KeyboardEvent) => {
79-
if (event.key == "Delete" || (Zotero.isMac && event.key == "Backspace")) {
80-
addon.data.prefs!.rows =
81-
addon.data.prefs?.rows.filter(
82-
(v, i) => !tableHelper.treeInstance.selection.isSelected(i),
83-
) || [];
84-
tableHelper.render();
85-
return false;
86-
}
87-
return true;
88-
})
89-
// For find-as-you-type
90-
.setProp(
91-
"getRowString",
92-
(index) => addon.data.prefs?.rows[index].title || "",
93-
)
94-
// Render the table.
95-
.render(-1, () => {
96-
renderLock.resolve();
97-
});
98-
await renderLock.promise;
99-
ztoolkit.log("Preference table rendered!");
100-
}
101-
10218
function bindPrefEvents() {
10319
const settingsElementsList =
10420
addon.data.prefs!.window.document.querySelectorAll(

tsconfig.json

+9-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
{
22
"compilerOptions": {
3-
"experimentalDecorators": true,
4-
"module": "commonjs",
53
"target": "ES2016",
4+
"lib": ["ESNext"],
5+
"experimentalDecorators": true,
6+
"module": "ESNext",
7+
"moduleResolution": "bundler",
68
"resolveJsonModule": true,
7-
"skipLibCheck": true,
8-
"strict": true
9+
"types": ["zotero-types"],
10+
"strict": true,
11+
"outDir": "build/dist/",
12+
"skipLibCheck": true
913
},
10-
"include": ["src", "typings", "node_modules/zotero-types"],
14+
"include": ["src", "typings"],
1115
"exclude": ["build", "addon"]
1216
}

0 commit comments

Comments
 (0)