From a23b646bc51dff6886f68380968a865aa1cc9b14 Mon Sep 17 00:00:00 2001 From: Will Stone <654103+will-stone@users.noreply.github.com> Date: Fri, 12 Aug 2022 13:23:46 +0100 Subject: [PATCH] fix: icons not loading after app uninstalled --- src/main/utils/get-app-icons.ts | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/utils/get-app-icons.ts b/src/main/utils/get-app-icons.ts index 75754a79..1e373865 100644 --- a/src/main/utils/get-app-icons.ts +++ b/src/main/utils/get-app-icons.ts @@ -9,17 +9,23 @@ import { dispatch } from '../state/store' export async function getAppIcons(apps: Storage['apps']): Promise { try { - const buffers: Buffer[] = await fileIcon.buffer( - apps.map((app) => app.id), - { size: 64 }, - ) + const buffers: (Buffer | null)[] = [] + + for await (const app of apps) { + try { + const buffer = await fileIcon.buffer(app.id, { size: 64 }) + buffers.push(buffer) + } catch { + buffers.push(null) + } + } const icons: Partial> = {} for (const [index, buffer] of Object.entries(buffers)) { - icons[apps[Number(index)].id] = `data:image/png;base64,${buffer.toString( - 'base64', - )}` + icons[apps[Number(index)].id] = buffer + ? `data:image/png;base64,${buffer.toString('base64')}` + : '' } dispatch(gotAppIcons(icons))