From ac040e8cada3c3918ed4c01cf4c5ed60f3d2240d Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 2 Feb 2026 22:19:32 +0000 Subject: [PATCH] fix: prevent card.byId validation errors when cardPublicId is empty --- apps/web/src/utils/cardInvalidation.ts | 2 ++ .../web/src/views/card/components/ActivityList.tsx | 2 +- apps/web/src/views/card/index.tsx | 14 ++++++++------ apps/web/src/views/public/board/CardModal.tsx | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/apps/web/src/utils/cardInvalidation.ts b/apps/web/src/utils/cardInvalidation.ts index ce56ffe9..0e8fc7ab 100644 --- a/apps/web/src/utils/cardInvalidation.ts +++ b/apps/web/src/utils/cardInvalidation.ts @@ -8,6 +8,8 @@ export async function invalidateCard( utils: ReturnType, cardPublicId: string, ) { + if (!cardPublicId || cardPublicId.length < 12) return; + await Promise.all([ utils.card.byId.invalidate({ cardPublicId }), utils.card.getActivities.invalidate({ cardPublicId }), diff --git a/apps/web/src/views/card/components/ActivityList.tsx b/apps/web/src/views/card/components/ActivityList.tsx index 5102a927..95fdfcaf 100644 --- a/apps/web/src/views/card/components/ActivityList.tsx +++ b/apps/web/src/views/card/components/ActivityList.tsx @@ -363,7 +363,7 @@ const ActivityList = ({ limit: ACTIVITIES_PAGE_SIZE, }, { - enabled: !!cardPublicId, + enabled: !!cardPublicId && cardPublicId.length >= 12, }, ); diff --git a/apps/web/src/views/card/index.tsx b/apps/web/src/views/card/index.tsx index 7a06e99d..3425f808 100644 --- a/apps/web/src/views/card/index.tsx +++ b/apps/web/src/views/card/index.tsx @@ -53,9 +53,10 @@ export function CardRightPanel({ isTemplate }: { isTemplate?: boolean }) { ? router.query.cardId[0] : router.query.cardId; - const { data: card } = api.card.byId.useQuery({ - cardPublicId: cardId ?? "", - }); + const { data: card } = api.card.byId.useQuery( + { cardPublicId: cardId ?? "" }, + { enabled: !!cardId && cardId.length >= 12 }, + ); const isCreator = card?.createdBy && session?.user.id === card.createdBy; const canEdit = canEditCard || isCreator; @@ -184,9 +185,10 @@ export default function CardPage({ isTemplate }: { isTemplate?: boolean }) { ? router.query.cardId[0] : router.query.cardId; - const { data: card, isLoading } = api.card.byId.useQuery({ - cardPublicId: cardId ?? "", - }); + const { data: card, isLoading } = api.card.byId.useQuery( + { cardPublicId: cardId ?? "" }, + { enabled: !!cardId && cardId.length >= 12 }, + ); const isCreator = card?.createdBy && session?.user.id === card.createdBy; const canEdit = canEditCard || isCreator; diff --git a/apps/web/src/views/public/board/CardModal.tsx b/apps/web/src/views/public/board/CardModal.tsx index 6e6ef963..35e65a61 100644 --- a/apps/web/src/views/public/board/CardModal.tsx +++ b/apps/web/src/views/public/board/CardModal.tsx @@ -32,7 +32,7 @@ export function CardModal({ cardPublicId: cardPublicId ?? "", }, { - enabled: isOpen && !!cardPublicId, + enabled: isOpen && !!cardPublicId && cardPublicId.length >= 12, }, );