From bcba09fa6ae0c0b4ff994ab2c90330da0c4c3495 Mon Sep 17 00:00:00 2001 From: Victor Lyuboslavsky Date: Sun, 30 Jun 2024 10:48:09 -0500 Subject: [PATCH] Added icons --- src/background.ts | 5 +---- src/constants.ts | 3 +++ src/popup.ts | 6 ++---- static/blurry_gray_16.png | Bin 0 -> 767 bytes static/blurry_green_16.png | Bin 0 -> 555 bytes static/blurry_purple_128.png | Bin 0 -> 16608 bytes static/blurry_purple_48.png | Bin 0 -> 4948 bytes static/manifest.json | 4 ++++ 8 files changed, 10 insertions(+), 8 deletions(-) create mode 100644 static/blurry_gray_16.png create mode 100644 static/blurry_green_16.png create mode 100644 static/blurry_purple_128.png create mode 100644 static/blurry_purple_48.png diff --git a/src/background.ts b/src/background.ts index a6388d1..70641f8 100644 --- a/src/background.ts +++ b/src/background.ts @@ -11,10 +11,7 @@ function startUp() { if (data.mode && typeof data.mode === "object") { currentModeIndex = (data.mode as Mode).index } - void chrome.action.setBadgeText({ text: MODES[currentModeIndex].text }) - void chrome.action.setBadgeBackgroundColor({ - color: MODES[currentModeIndex].color, - }) + void chrome.action.setIcon({ path: MODES[currentModeIndex].icon }) }) } diff --git a/src/constants.ts b/src/constants.ts index 939e34c..8026986 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -3,6 +3,7 @@ export interface Mode { id: string text: string color: string + icon: string } export interface Message { @@ -24,12 +25,14 @@ export const MODES: Mode[] = [ id: "off", text: "off", color: "#AAAAAA", + icon: "blurry_gray_16.png", }, { index: 1, id: "on", text: "blur", color: "#008C20", + icon: "blurry_green_16.png", }, ] diff --git a/src/popup.ts b/src/popup.ts index ca13e6c..93cd8fc 100644 --- a/src/popup.ts +++ b/src/popup.ts @@ -8,8 +8,7 @@ chrome.storage.sync.get(null, (data) => { const config = data as StoredConfig checkbox.checked = !(config.mode?.id === "off") const mode = config.mode ?? MODES[1] - void chrome.action.setBadgeText({ text: mode.text }) - void chrome.action.setBadgeBackgroundColor({ color: mode.color }) + void chrome.action.setIcon({ path: mode.icon }) const literals: string[] = config.literals ?? [] // Loop over NUMBER_OF_LITERALS elements and listen to each one. @@ -57,8 +56,7 @@ checkbox.addEventListener("change", (event) => { if (event.target instanceof HTMLInputElement) { const mode = event.target.checked ? MODES[1] : MODES[0] void chrome.storage.sync.set({ mode: mode }) - void chrome.action.setBadgeText({ text: mode.text }) - void chrome.action.setBadgeBackgroundColor({ color: mode.color }) + void chrome.action.setIcon({ path: mode.icon }) // Send message to content script in all tabs chrome.tabs .query({}) diff --git a/static/blurry_gray_16.png b/static/blurry_gray_16.png new file mode 100644 index 0000000000000000000000000000000000000000..23f057612d3034298ff5aa2872b6baebcc2aeb46 GIT binary patch literal 767 zcmVzi~)^FW^PxJC<*ij7as4PbGYwaMnq^O6bilY z`F!!=;o)wt*9*=$ip3&yU9T34#h9jPKU(#yH6R=gXO@K>L?Ya_ZKP7EdMp-m zot~b;@Atzn3=k0p2M3YQ=ON27c6WCh(P-4^a=D;s8aYFu5Z~V3zBNrV9gD@n<#HK@ zVc4=P^K!Y2o0}W-_xB^0%UK?e$1y%W?%dki`Ywv%Of(vGJFc#-W+X{^IypJ{sjI6C z$z<~9!oq@_PN!{2lGx?tC7qw2BNz+9>Zwzft991{~0 xW9_s~v>}tpF002ovPDHLkV1jmhR<-~D literal 0 HcmV?d00001 diff --git a/static/blurry_green_16.png b/static/blurry_green_16.png new file mode 100644 index 0000000000000000000000000000000000000000..f502f8091a5358f8efa2632642540fb7a6c0dff3 GIT binary patch literal 555 zcmV+`0@VG9P)7+Sm!=44Q04I)$P;;6 zxS}E=WWWN~tVLpOQHLAal`LYu6-7hlC=kdNIYogl_IX{l{GZUo?m31XflShoRH(9A zuaL+1G;nzpkRm5!?Mgb53Qj5*7lwu7^72AY$rp=f?LP5AF&DbHM)u=;y z)XVyaoYW5t;w46LU%_Y8t8~~Mt@7$6?9rt`l}ExWq1i)Ug;NUpgtJoZQtyQ(UET`4 zLW^pxDrl{ECJs6wNOC>xkfhoFQSS7H6b#LZdd{izobppFW5PwpkVt t+!8vAZ)>YnGh$~NPA)G?9rScI%wMVhXNsY-6JP)U002ovPDHLkV1gb1^nd^W literal 0 HcmV?d00001 diff --git a/static/blurry_purple_128.png b/static/blurry_purple_128.png new file mode 100644 index 0000000000000000000000000000000000000000..c985b7a34c624e4209c5611d25a6c2c3a8b0d092 GIT binary patch literal 16608 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 F{vS}7l?MO- literal 0 HcmV?d00001 diff --git a/static/blurry_purple_48.png b/static/blurry_purple_48.png new file mode 100644 index 0000000000000000000000000000000000000000..87931667fbcc2fc0cf157698d0b3c4d324a89ab5 GIT binary patch literal 4948 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 SHa3m`0000