Skip to content

Commit da4e826

Browse files
committed
fix: #1469
chore: move patchers to its own dir
1 parent 1ae14d2 commit da4e826

File tree

5 files changed

+39
-5
lines changed

5 files changed

+39
-5
lines changed

src/hooks.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import {
4141
import { createZToolkit } from "./utils/ztoolkit";
4242
import { waitUtilAsync } from "./utils/wait";
4343
import { initSyncList } from "./modules/sync/api";
44-
import { patchViewItems } from "./modules/viewItems";
44+
import { patchViewItems } from "./modules/patches/viewItems";
4545
import { getFocusedWindow } from "./utils/window";
4646
import { registerNoteRelation } from "./modules/workspace/relation";
4747
import { getPref, setPref } from "./utils/prefs";
@@ -50,9 +50,10 @@ import { registerNoteLinkSection } from "./modules/workspace/link";
5050
import { showUserGuide } from "./modules/userGuide";
5151
import { refreshTemplatesInNote } from "./modules/template/refresh";
5252
import { closeParsingServer } from "./utils/parsing";
53-
import { patchExportItems } from "./modules/exportItems";
54-
import { patchOpenTabMenu } from "./modules/openTabMenu";
53+
import { patchExportItems } from "./modules/patches/exportItems";
54+
import { patchOpenTabMenu } from "./modules/patches/openTabMenu";
5555
import { closeConvertServer } from "./utils/convert";
56+
import { patchCanEdit } from "./modules/patches/canEdit";
5657

5758
async function onStartup() {
5859
await Promise.all([
@@ -113,6 +114,8 @@ async function onMainWindowLoad(win: _ZoteroTypes.MainWindow): Promise<void> {
113114

114115
patchExportItems(win);
115116

117+
patchCanEdit(win);
118+
116119
// TEMP: This doesn't work, maybe better to wait for the support from Zotero
117120
// patchOpenTabMenu(win);
118121

src/modules/patches/canEdit.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { PatchHelper } from "zotero-plugin-toolkit";
2+
import { getPref } from "../../utils/prefs";
3+
4+
export function patchCanEdit(win: _ZoteroTypes.MainWindow) {
5+
// @ts-ignore
6+
const ZoteroPane = win.ZoteroPane;
7+
new PatchHelper().setData({
8+
target: ZoteroPane,
9+
funcSign: "canEdit",
10+
patcher: (origin) =>
11+
function (row: number) {
12+
if (!addon.data.alive) {
13+
// @ts-ignore
14+
return origin.apply(this, [items, event]);
15+
}
16+
if (win.Zotero_Tabs.selectedType === "note") {
17+
const tabInfo = win.Zotero_Tabs._getTab(
18+
win.Zotero_Tabs.selectedID,
19+
).tab;
20+
const item = Zotero.Items.get(tabInfo.data?.itemID);
21+
if (item) {
22+
return item.isEditable();
23+
}
24+
return false;
25+
}
26+
// @ts-ignore
27+
return origin.apply(this, [otherItems, event]);
28+
},
29+
enabled: true,
30+
});
31+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { PatchHelper } from "zotero-plugin-toolkit";
2-
import { getPref } from "../utils/prefs";
2+
import { getPref } from "../../utils/prefs";
33

44
export function patchExportItems(win: _ZoteroTypes.MainWindow) {
55
const Zotero_File_Interface = win.Zotero_File_Interface;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { PatchHelper } from "zotero-plugin-toolkit";
2-
import { getPref } from "../utils/prefs";
2+
import { getPref } from "../../utils/prefs";
33

44
export function patchViewItems(win: _ZoteroTypes.MainWindow) {
55
// @ts-ignore

0 commit comments

Comments
 (0)