From a362d236fb2c23dbf8fc19759cbb0d4a440905aa Mon Sep 17 00:00:00 2001 From: Erik Tiekstra Date: Thu, 14 Aug 2025 07:24:35 +0000 Subject: [PATCH] fix(SW-3084): Handle unpublished entries inside content pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Approved-by: Matilda Landström --- apps/scandic-web/components/Sidebar/index.tsx | 8 +++++ .../schemas/blocks/cards/teaserCard.ts | 4 +++ .../contentstack/schemas/blocks/content.ts | 31 +++---------------- .../schemas/sidebar/scriptedCard.ts | 5 +++ .../schemas/sidebar/teaserCard.ts | 5 +++ 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/apps/scandic-web/components/Sidebar/index.tsx b/apps/scandic-web/components/Sidebar/index.tsx index bdc5d9445..de83ec5d6 100644 --- a/apps/scandic-web/components/Sidebar/index.tsx +++ b/apps/scandic-web/components/Sidebar/index.tsx @@ -44,6 +44,10 @@ export default function Sidebar({ blocks }: SidebarProps) { /> ) case SidebarEnums.blocks.ScriptedCard: + if (!block.scripted_card) { + return null + } + return ( ) case SidebarEnums.blocks.TeaserCard: + if (!block.teaser_card) { + return null + } + return ( { const link = transformPageLink(data) @@ -73,15 +58,7 @@ export const contentRefsSchema = z.object({ node: z.discriminatedUnion("__typename", [ sysAssetRefsSchema, imageContainerRefsSchema, - accountPageSchema, - collectionPageSchema, - contentPageSchema, - destinationCityPageSchema, - destinationCountryPageSchema, - destinationOverviewPageSchema, - hotelPageSchema, - loyaltyPageSchema, - startPageSchema, + ...linkRefsUnionSchema.options, ]), }) ), diff --git a/packages/trpc/lib/routers/contentstack/schemas/sidebar/scriptedCard.ts b/packages/trpc/lib/routers/contentstack/schemas/sidebar/scriptedCard.ts index 7cb5af66b..b7853fefb 100644 --- a/packages/trpc/lib/routers/contentstack/schemas/sidebar/scriptedCard.ts +++ b/packages/trpc/lib/routers/contentstack/schemas/sidebar/scriptedCard.ts @@ -25,7 +25,12 @@ export const scriptedCardsSchema = z.object({ ), }), }) + .nullish() .transform((data) => { + if (!data?.scripted_cardConnection?.edges.length) { + return null + } + return { theme: data.theme, ...transformCardBlock(data.scripted_cardConnection.edges[0].node), diff --git a/packages/trpc/lib/routers/contentstack/schemas/sidebar/teaserCard.ts b/packages/trpc/lib/routers/contentstack/schemas/sidebar/teaserCard.ts index 94816d149..ba5b48143 100644 --- a/packages/trpc/lib/routers/contentstack/schemas/sidebar/teaserCard.ts +++ b/packages/trpc/lib/routers/contentstack/schemas/sidebar/teaserCard.ts @@ -24,7 +24,12 @@ export const teaserCardsSchema = z.object({ ), }), }) + .nullish() .transform((data) => { + if (!data?.teaser_cardConnection?.edges.length) { + return null + } + return { ...transformTeaserCardBlock(data.teaser_cardConnection.edges[0].node), theme: data.theme,