Skip to content

Commit

Permalink
fix: zotero 7.0.0-beta.55 or higher
Browse files Browse the repository at this point in the history
  • Loading branch information
windingwind committed Feb 7, 2024
1 parent 4d7c072 commit 48bceab
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 79 deletions.
12 changes: 6 additions & 6 deletions .vscode/toolkit.code-snippets
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@
"\tremoveIfExists: ${13:true},",
"\tcustomCheck: (doc: Document, options: ElementOptions) => ${14:true},",
"\tchildren: [$15]",
"}, ${16:container});"
]
"}, ${16:container});",
],
},
"appendElement - minimum": {
"scope": "javascript,typescript",
"prefix": "appendElement",
"body": "appendElement({ tag: '$1' }, $2);"
"body": "appendElement({ tag: '$1' }, $2);",
},
"register Notifier": {
"scope": "javascript,typescript",
Expand All @@ -39,7 +39,7 @@
"\t) => {",
"\t\t$0",
"\t}",
"});"
]
}
"});",
],
},
}
3 changes: 3 additions & 0 deletions addon/chrome/content/icons/dropmarker.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions addon/chrome/content/icons/icon-20.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,25 +33,25 @@
"homepage": "https://github.com/windingwind/zotero-actions-tags#readme",
"dependencies": {
"js-yaml": "^4.1.0",
"zotero-plugin-toolkit": "^2.3.19"
"zotero-plugin-toolkit": "^2.3.20"
},
"devDependencies": {
"@types/js-yaml": "^4.0.9",
"@types/node": "^20.10.6",
"@typescript-eslint/eslint-plugin": "^6.17.0",
"@typescript-eslint/parser": "^6.17.0",
"@types/node": "^20.11.16",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
"chokidar-cli": "^3.0.0",
"compressing": "^1.10.0",
"concurrently": "^8.2.2",
"cross-env": "^7.0.3",
"esbuild": "^0.19.11",
"esbuild": "^0.19.12",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"prettier": "^3.1.1",
"prettier": "^3.2.5",
"release-it": "^16.3.0",
"replace-in-file": "^7.1.0",
"typescript": "^5.3.3",
"zotero-types": "^1.3.13"
"zotero-types": "^1.3.18"
},
"eslintConfig": {
"env": {
Expand Down
2 changes: 1 addition & 1 deletion scripts/update-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"update_link": "__updateLink__",
"applications": {
"zotero": {
"strict_min_version": "6.999"
"strict_min_version": "7.0.0-beta.55"
}
}
}
Expand Down
100 changes: 36 additions & 64 deletions src/modules/menu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { getString } from "../utils/locale";
import { getPref } from "../utils/prefs";
import { ActionData, ActionShowInMenu } from "../utils/actions";
import { getCurrentItems, getItemsByKey } from "../utils/items";
import { getIcon } from "../utils/icon";

export {
initItemMenu,
Expand Down Expand Up @@ -75,7 +76,10 @@ function initItemMenu(win: Window) {
);
}

function initReaderMenu() {
async function initReaderMenu() {
// Cache icons
await getIcon(`chrome://${config.addonRef}/content/icons/icon-20.svg`);
await getIcon(`chrome://${config.addonRef}/content/icons/dropmarker.svg`);
Zotero.Reader.registerEventListener(
"renderToolbar",
readerToolbarCallback,
Expand Down Expand Up @@ -136,72 +140,40 @@ function readerToolbarCallback(
event: Parameters<_ZoteroTypes.Reader.EventHandler<"renderToolbar">>[0],
) {
const { append, doc } = event;
const image =
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsSAAALEgHS3X78AAAA40lEQVRYCWP8//8/AyFwJL/hjsbXJ8oEFSKBG9wyd20mNqgQUsdESMGCypkppFoOAiA924s711PsAOmfb2NItRwGWP7/FaTYAbQGow4YdcCoA0YdMOqAUQcMuANYCCm4yS394AWboD05hn9k5XrgSqkDjgloPiDHcih4kENAwWgaGHXAqAModcBFKB4QB4AsdoBish1BrgPAli8rNvsAwpQ4ghwHLIRZDhNAcsRCUg0jWBSjW76s2CwBmwTUEQlRvadA3HhiDSQlBHBajuYQkBqiQ4JYBxQSYzmaIwoJKmRgYAAAgCNBYXH3oBUAAAAASUVORK5CYII=";
const readerButtonCSS = `
.actions-tags-reader-menu::before {
background-image: url(${image});
background-size: 100%;
content: "";
display: inline-block;
height: 16px;
vertical-align: top;
width: 16px;
}
.actions-tags-reader-menu .dropmarker {
background: url(assets/icons/searchbar-dropmarker@2x.4ebeb64c.png) no-repeat 0 0/100%;
display: inline-block;
height: 4px;
margin: 6px 0;
margin-inline-start: 2px;
position: relative;
vertical-align: top;
width: 7px;
z-index: 1;
}
`;
append(
ztoolkit.UI.createElement(doc, "button", {
namespace: "html",
classList: ["toolbarButton", "actions-tags-reader-menu"],
properties: {
tabIndex: -1,
title: "Actions",
},
listeners: [
{
type: "click",
listener: (ev: Event) => {
document
.querySelector(`#${config.addonRef}-reader-popup`)
// @ts-ignore XUL.MenuPopup
?.openPopup(
doc.querySelector(".actions-tags-reader-menu"),
"after_start",
);
},
},
],
children: [
{
tag: "span",
classList: ["button-background"],
},
{
tag: "span",
classList: ["dropmarker"],
const button = ztoolkit.UI.createElement(doc, "button", {
namespace: "html",
classList: [
"toolbar-button",
"toolbar-dropdown-button",
`${config.addonRef}-reader-button`,
],
properties: {
tabIndex: -1,
title: "Actions",
},
listeners: [
{
type: "click",
listener: (ev: Event) => {
document
.querySelector(`#${config.addonRef}-reader-popup`)
// @ts-ignore XUL.MenuPopup
?.openPopup(
doc.querySelector(`.${config.addonRef}-reader-button`),
"after_start",
);
},
],
}),
);
append(
ztoolkit.UI.createElement(doc, "style", {
id: `${config.addonRef}-reader-button`,
properties: {
textContent: readerButtonCSS,
},
}),
],
});
const buttonIcon = getIcon(
`chrome://${config.addonRef}/content/icons/icon-20.svg`,
);
const dropmarkerIcon = getIcon(
`chrome://${config.addonRef}/content/icons/dropmarker.svg`,
);
button.innerHTML = `${buttonIcon}${dropmarkerIcon}`;
append(button);
}

function buildItemMenu(
Expand Down
10 changes: 10 additions & 0 deletions src/utils/icon.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const icons: Record<string, string> = {};

export function getIcon(src: string) {
if (icons[src]) return icons[src];
const res = Zotero.HTTP.request("GET", src, {});
res.then((r) => {
icons[src] = r.response;
});
return res;
}
2 changes: 1 addition & 1 deletion update-beta.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"update_link": "https://github.com/windingwind/zotero-actions-tags/releases/download/v1.0.0-beta.33/zotero-actions-tags.xpi",
"applications": {
"zotero": {
"strict_min_version": "6.999"
"strict_min_version": "7.0.0-beta.55"
}
}
}
Expand Down

0 comments on commit 48bceab

Please sign in to comment.