From bd0b7c9518af88e0a329ea6286cb5ef97098782a Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Thu, 30 Jan 2025 20:15:05 +0100 Subject: [PATCH] fix: board crashes with empty string favicon (#2192) --- .../src/app/[locale]/boards/(content)/_creator.tsx | 9 ++++++--- packages/common/src/string.ts | 4 ++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_creator.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_creator.tsx index 1944e3aa8..c5caa21cf 100644 --- a/apps/nextjs/src/app/[locale]/boards/(content)/_creator.tsx +++ b/apps/nextjs/src/app/[locale]/boards/(content)/_creator.tsx @@ -7,6 +7,7 @@ import "~/styles/gridstack.scss"; import { IntegrationProvider } from "@homarr/auth/client"; import { auth } from "@homarr/auth/next"; import { getIntegrationsWithPermissionsAsync } from "@homarr/auth/server"; +import { isNullOrWhitespace } from "@homarr/common"; import { getI18n } from "@homarr/translation/server"; import { createMetaTitle } from "~/metadata"; @@ -48,11 +49,13 @@ export const createBoardContentPage = >( return { title: board.metaTitle ?? createMetaTitle(t("board.content.metaTitle", { boardName: board.name })), icons: { - icon: board.faviconImageUrl ?? undefined, - apple: board.faviconImageUrl ?? undefined, + icon: !isNullOrWhitespace(board.faviconImageUrl) ? board.faviconImageUrl : undefined, + apple: !isNullOrWhitespace(board.faviconImageUrl) ? board.faviconImageUrl : undefined, }, appleWebApp: { - startupImage: { url: board.faviconImageUrl ?? "/logo/logo.png" }, + startupImage: { + url: !isNullOrWhitespace(board.faviconImageUrl) ? board.faviconImageUrl : "/logo/logo.png", + }, }, }; } catch (error) { diff --git a/packages/common/src/string.ts b/packages/common/src/string.ts index b829514ff..75f757a78 100644 --- a/packages/common/src/string.ts +++ b/packages/common/src/string.ts @@ -1,3 +1,7 @@ export const capitalize = (str: T) => { return (str.charAt(0).toUpperCase() + str.slice(1)) as Capitalize; }; + +export const isNullOrWhitespace = (value: string | null): value is null => { + return value == null || value.trim() === ""; +};