From bcd0c682163b18a684508816355f500a27e36b0b Mon Sep 17 00:00:00 2001 From: hjoncour Date: Tue, 17 Mar 2026 20:42:32 -0400 Subject: [PATCH] fix(sidebar): show only open or close icon --- .nvmrc | 1 + README.md | 6 +++++- package-lock.json | 4 ++-- package.json | 4 +++- src/adapters/github/index.ts | 18 +++++++++--------- src/adapters/github/selectors.ts | 5 +++-- ssmver.toml | 4 ++-- 7 files changed, 25 insertions(+), 17 deletions(-) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..57f54b4 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v25.8.1 diff --git a/README.md b/README.md index 096e26a..5cde7ef 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,11 @@ Choose from six icon themes in the extension popup: ## Install -The extension is currently under review by the Chrome Web Store. In the meantime, build and load it locally: +[**Chrome Web Store**](https://chromewebstore.google.com/detail/github-icons/hjhebcpkgfacibbiohdccepipeekkjlj) + +Safari and Firefox versions should be available soon! + +Or build and load it locally: ```bash git clone https://github.com/g-icons/github-icons diff --git a/package-lock.json b/package-lock.json index 74accb8..4a042c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chrome-github-icons", - "version": "0.5.0", + "version": "0.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "chrome-github-icons", - "version": "0.5.0", + "version": "0.5.1", "hasInstallScript": true, "dependencies": { "@iconify-json/vscode-icons": "^1.2.45", diff --git a/package.json b/package.json index 6c80f3e..c618206 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "chrome-github-icons", "description": "Cross-browser extension that replaces GitHub file icons with Material Design icons.", "private": true, - "version": "0.5.0", + "version": "0.5.1", "type": "module", "scripts": { "sync:assets": "tsx scripts/copy-icons.ts", @@ -13,6 +13,8 @@ "build:firefox": "npm run sync:assets && wxt build -b firefox", "build:safari": "npm run sync:assets && wxt build -b safari", "chrome": "npm run sync:assets && wxt zip", + "firefox": "npm run sync:assets && wxt zip -b firefox", + "safari": "npm run sync:assets && wxt zip -b safari", "zip": "npm run sync:assets && wxt zip", "zip:firefox": "npm run sync:assets && wxt zip -b firefox", "compile": "tsc --noEmit", diff --git a/src/adapters/github/index.ts b/src/adapters/github/index.ts index 4b43fce..ec40d43 100644 --- a/src/adapters/github/index.ts +++ b/src/adapters/github/index.ts @@ -72,20 +72,20 @@ export class GitHubAdapter implements SiteAdapter { originalIcon.style.display = 'none'; - if (existingReplacement) { - existingReplacement.src = iconUrl; - return; - } - - // Remove orphaned replacement images in the same parent. - // In the sidebar, React swaps between closed/open folder SVGs — the old - // SVG is removed but our replacement stays behind. + // Clean up any orphaned replacement images in the same parent + // (happens when GitHub swaps SVGs for open/closed folder states) const parent = originalIcon.parentElement; if (parent) { - parent.querySelectorAll(`img[${REPLACEMENT_ATTR}="true"]`) + parent + .querySelectorAll(`img[${REPLACEMENT_ATTR}="true"]`) .forEach((orphan) => orphan.remove()); } + if (existingReplacement) { + existingReplacement.src = iconUrl; + return; + } + const replacement = this.createReplacementImage(originalIcon, iconUrl); originalIcon.insertAdjacentElement('afterend', replacement); } diff --git a/src/adapters/github/selectors.ts b/src/adapters/github/selectors.ts index 77e907e..cb8e00a 100644 --- a/src/adapters/github/selectors.ts +++ b/src/adapters/github/selectors.ts @@ -30,9 +30,10 @@ export const GITHUB_ICON_SELECTOR = 'svg[class*="octicon-file"]'; const GITHUB_ENTRY_CONTAINER_SELECTOR = [ '.react-directory-row', - '.PRIVATE_TreeView-item-container', - '[data-testid="tree-view-item"]', '[role="treeitem"]', + '[data-testid="tree-view-item"]', + '.PRIVATE_TreeView-item-container', + '.PRIVATE_TreeView-item-content', 'tr.js-navigation-item', 'li.js-navigation-item', 'div[role="row"]', diff --git a/ssmver.toml b/ssmver.toml index 769aeac..cb9e98a 100644 --- a/ssmver.toml +++ b/ssmver.toml @@ -1,4 +1,4 @@ -version = "0.5.0" +version = "0.5.1" [settings] mode = "branch" @@ -11,7 +11,7 @@ prompt_prefixes = [ [sync] monorepo = "lockstep" constants = "curated" -exclude = [] +exclude = ["test/**"] [prefixes] feature = "minor"