From ae6660ca9cf7ce2e02c297dfda92014cd7bae124 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Fri, 1 Apr 2022 09:43:26 -0400 Subject: [PATCH] review comments Signed-off-by: Sebastian Malton --- package.json | 1 - src/main/tray/tray.ts | 14 ++++++-------- yarn.lock | 34 ---------------------------------- 3 files changed, 6 insertions(+), 43 deletions(-) diff --git a/package.json b/package.json index 211d2b909f..c249ff44e1 100644 --- a/package.json +++ b/package.json @@ -217,7 +217,6 @@ "chokidar": "^3.5.3", "conf": "^7.1.2", "crypto-js": "^4.1.1", - "data-urls": "^3.0.1", "electron-devtools-installer": "^3.2.0", "electron-updater": "^4.6.5", "electron-window-state": "^5.0.3", diff --git a/src/main/tray/tray.ts b/src/main/tray/tray.ts index fc0ca1ec45..58ed210e0b 100644 --- a/src/main/tray/tray.ts +++ b/src/main/tray/tray.ts @@ -14,9 +14,8 @@ import type { WindowManager } from "../window-manager"; import logger from "../logger"; import { isWindows, productName } from "../../common/vars"; import { exitApp } from "../exit-app"; -import { getOrInsertWithAsync, toJS } from "../../common/utils"; +import { base64, getOrInsertWithAsync, toJS } from "../../common/utils"; import type { TrayMenuRegistration } from "./tray-menu-registration"; -import parseDataURL from "data-urls"; import sharp from "sharp"; import LogoLens from "../../renderer/components/icon/logo-lens.svg"; import { JSDOM } from "jsdom"; @@ -27,7 +26,7 @@ const TRAY_LOG_PREFIX = "[TRAY]"; // note: instance of Tray should be saved somewhere, otherwise it disappears export let tray: Tray; -interface ComputeTrayIconArgs { +interface CreateTrayIconArgs { shouldUseDarkColors: boolean; size: number; sourceSvg: string; @@ -35,12 +34,11 @@ interface ComputeTrayIconArgs { const trayIcons = new Map(); -async function computeTrayIcon({ shouldUseDarkColors, size, sourceSvg }: ComputeTrayIconArgs): Promise { +async function createTrayIcon({ shouldUseDarkColors, size, sourceSvg }: CreateTrayIconArgs): Promise { return getOrInsertWithAsync(trayIcons, shouldUseDarkColors, async () => { const trayIconColor = shouldUseDarkColors ? "white" : "black"; // Invert to show contrast - const parsedSvg = parseDataURL(sourceSvg); - const svgContent = Buffer.from(parsedSvg.body.buffer).toString(); - const svgDom = new JSDOM(`${svgContent}`); + const parsedSvg = base64.decode(sourceSvg.split("base64,")[1]); + const svgDom = new JSDOM(`${parsedSvg}`); const svgRoot = svgDom.window.document.body.getElementsByTagName("svg")[0]; svgRoot.innerHTML += ``; @@ -55,7 +53,7 @@ async function computeTrayIcon({ shouldUseDarkColors, size, sourceSvg }: Compute } function computeCurrentTrayIcon() { - return computeTrayIcon({ + return createTrayIcon({ shouldUseDarkColors: nativeTheme.shouldUseDarkColors, size: 16, sourceSvg: LogoLens, diff --git a/yarn.lock b/yarn.lock index d5ba109fcf..2c65f41446 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4439,15 +4439,6 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -data-urls@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.1.tgz#597fc2ae30f8bc4dbcf731fcd1b1954353afc6f8" - integrity sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^3.0.0" - whatwg-url "^10.0.0" - date-fns@^2.16.1: version "2.28.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" @@ -13003,13 +12994,6 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -13628,11 +13612,6 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - webpack-cli@^4.9.2: version "4.9.2" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d" @@ -13779,19 +13758,6 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-10.0.0.tgz#37264f720b575b4a311bd4094ed8c760caaa05da" - integrity sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"