diff --git a/build/generate-tray-icons.ts b/build/generate-tray-icons.ts index ed90d27832..010a00989d 100644 --- a/build/generate-tray-icons.ts +++ b/build/generate-tray-icons.ts @@ -12,6 +12,7 @@ const size = Number(process.env.OUTPUT_SIZE || "16"); const outputFolder = process.env.OUTPUT_DIR || "./build/tray"; const inputFile = process.env.INPUT_SVG_PATH || "./src/renderer/components/icon/logo-lens.svg"; const noticeFile = process.env.NOTICE_SVG_PATH || "./src/renderer/components/icon/notice.svg"; +const spinnerFile = process.env.SPINNER_SVG_PATH || "./src/renderer/components/icon/ssh.svg"; async function ensureOutputFoler() { await ensureDir(outputFolder); @@ -58,8 +59,9 @@ async function generateImages(image: Buffer, size: number, name: string) { ]); } -async function generateUpdateAvailableImages(baseImage: Buffer, system: TargetSystems) { - const noticeIconImage = await getNoticeIconImage(system); +async function generateImageWithSvg(baseImage: Buffer, system: TargetSystems, filePath: string) { + const svgFile = await getIconImage(system, filePath); + const circleBuffer = await sharp(Buffer.from(` @@ -78,7 +80,7 @@ async function generateUpdateAvailableImages(baseImage: Buffer, system: TargetSy }, { input: ( - await sharp(noticeIconImage) + await sharp(svgFile) .resize({ width: 60, height: 60, @@ -92,8 +94,8 @@ async function generateUpdateAvailableImages(baseImage: Buffer, system: TargetSy .toBuffer(); } -async function getNoticeIconImage(system: TargetSystems) { - const svgData = await readFile(noticeFile, { encoding: "utf-8" }); +async function getIconImage(system: TargetSystems, filePath: string) { + const svgData = await readFile(filePath, { encoding: "utf-8" }); const root = new JSDOM(svgData).window.document.getElementsByTagName("svg")[0]; root.innerHTML += getSvgStyling(system === "macos" ? "light" : "dark"); @@ -107,18 +109,25 @@ async function generateTrayIcons() { await ensureOutputFoler(); const baseIconTemplateImage = await getBaseIconImage("macos"); - const updateAvailableTemplateImage = await generateUpdateAvailableImages(baseIconTemplateImage, "macos"); const baseIconImage = await getBaseIconImage("windows-or-linux"); - const updateAvailableImage = await generateUpdateAvailableImages(baseIconImage, "windows-or-linux"); + + const updateAvailableTemplateImage = await generateImageWithSvg(baseIconTemplateImage, "macos", noticeFile); + const updateAvailableImage = await generateImageWithSvg(baseIconImage, "windows-or-linux", noticeFile); + + const checkingForUpdatesTemplateImage = await generateImageWithSvg(baseIconTemplateImage, "macos", spinnerFile); + const checkingForUpdatesImage = await generateImageWithSvg(baseIconImage, "windows-or-linux", spinnerFile); await Promise.all([ // Templates are for macOS only generateImages(baseIconTemplateImage, size, "trayIconTemplate"), generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"), + generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"), + generateImages(checkingForUpdatesTemplateImage, size, "trayIconCheckingForUpdatesTemplate"), // Non-templates are for windows and linux generateImages(baseIconImage, size, "trayIcon"), generateImages(updateAvailableImage, size, "trayIconUpdateAvailable"), + generateImages(checkingForUpdatesImage, size, "trayIconCheckingForUpdates"), ]); console.log("Generated all images"); diff --git a/build/tray/trayIconCheckingForUpdates.png b/build/tray/trayIconCheckingForUpdates.png new file mode 100644 index 0000000000..62115122ff Binary files /dev/null and b/build/tray/trayIconCheckingForUpdates.png differ diff --git a/build/tray/trayIconCheckingForUpdates@2x.png b/build/tray/trayIconCheckingForUpdates@2x.png new file mode 100644 index 0000000000..0be31d05ab Binary files /dev/null and b/build/tray/trayIconCheckingForUpdates@2x.png differ diff --git a/build/tray/trayIconCheckingForUpdates@3x.png b/build/tray/trayIconCheckingForUpdates@3x.png new file mode 100644 index 0000000000..0d4ab7df7d Binary files /dev/null and b/build/tray/trayIconCheckingForUpdates@3x.png differ diff --git a/build/tray/trayIconCheckingForUpdates@4x.png b/build/tray/trayIconCheckingForUpdates@4x.png new file mode 100644 index 0000000000..355509d638 Binary files /dev/null and b/build/tray/trayIconCheckingForUpdates@4x.png differ diff --git a/build/tray/trayIconCheckingForUpdatesTemplate.png b/build/tray/trayIconCheckingForUpdatesTemplate.png new file mode 100644 index 0000000000..1f01764ffc Binary files /dev/null and b/build/tray/trayIconCheckingForUpdatesTemplate.png differ diff --git a/build/tray/trayIconCheckingForUpdatesTemplate@2x.png b/build/tray/trayIconCheckingForUpdatesTemplate@2x.png new file mode 100644 index 0000000000..df55630b45 Binary files /dev/null and b/build/tray/trayIconCheckingForUpdatesTemplate@2x.png differ diff --git a/build/tray/trayIconCheckingForUpdatesTemplate@3x.png b/build/tray/trayIconCheckingForUpdatesTemplate@3x.png new file mode 100644 index 0000000000..db54ea1b77 Binary files /dev/null and b/build/tray/trayIconCheckingForUpdatesTemplate@3x.png differ diff --git a/build/tray/trayIconCheckingForUpdatesTemplate@4x.png b/build/tray/trayIconCheckingForUpdatesTemplate@4x.png new file mode 100644 index 0000000000..037b9fd330 Binary files /dev/null and b/build/tray/trayIconCheckingForUpdatesTemplate@4x.png differ