diff --git a/apps/scandic-web/components/ContentType/CampaignOverviewPage/TopCampaign/index.tsx b/apps/scandic-web/components/ContentType/CampaignOverviewPage/TopCampaign/index.tsx index b518d09db..50bbd8f8c 100644 --- a/apps/scandic-web/components/ContentType/CampaignOverviewPage/TopCampaign/index.tsx +++ b/apps/scandic-web/components/ContentType/CampaignOverviewPage/TopCampaign/index.tsx @@ -16,25 +16,28 @@ interface TopCampaignProps { export default async function TopCampaign({ topCampaign }: TopCampaignProps) { const lang = await getLang() const intl = await getIntl() + const { campaign, heading } = topCampaign const buttonData = { cta: intl.formatMessage({ defaultMessage: "Explore the offer" }), - url: `/${lang}${topCampaign.url}`, + url: `/${lang}${campaign.url}`, } return (
- -

{topCampaign.heading}

-
- + {heading ? ( + +

{heading}

+
+ ) : null} + diff --git a/packages/trpc/lib/graphql/Fragments/CampaignOverviewPage/TopCampaign.graphql b/packages/trpc/lib/graphql/Fragments/CampaignOverviewPage/TopCampaign.graphql index 5e205e58b..ea60f5142 100644 --- a/packages/trpc/lib/graphql/Fragments/CampaignOverviewPage/TopCampaign.graphql +++ b/packages/trpc/lib/graphql/Fragments/CampaignOverviewPage/TopCampaign.graphql @@ -5,7 +5,6 @@ #import "../CampaignPage/Hero.graphql" fragment TopCampaign on CampaignPage { - heading included_hotels { ...CampaignPageIncludedHotels } diff --git a/packages/trpc/lib/graphql/Query/CampaignOverviewPage/CampaignOverviewPage.graphql b/packages/trpc/lib/graphql/Query/CampaignOverviewPage/CampaignOverviewPage.graphql index ca5079793..37fecbdfc 100644 --- a/packages/trpc/lib/graphql/Query/CampaignOverviewPage/CampaignOverviewPage.graphql +++ b/packages/trpc/lib/graphql/Query/CampaignOverviewPage/CampaignOverviewPage.graphql @@ -15,10 +15,13 @@ query GetCampaignOverviewPage($locale: String!, $uid: String!) { preamble ...NavigationLinks_CampaignOverviewPage } - top_campaignConnection { - edges { - node { - ...TopCampaign + top_campaign_block { + heading + campaignConnection { + edges { + node { + ...TopCampaign + } } } } @@ -44,10 +47,12 @@ query GetCampaignOverviewPageRefs($locale: String!, $uid: String!) { header { ...NavigationLinksRef_CampaignOverviewPage } - top_campaignConnection { - edges { - node { - ...TopCampaignRef + top_campaign_block { + campaignConnection { + edges { + node { + ...TopCampaignRef + } } } } diff --git a/packages/trpc/lib/routers/contentstack/campaignOverviewPage/output.ts b/packages/trpc/lib/routers/contentstack/campaignOverviewPage/output.ts index 9ef5e3e74..b7a9044f1 100644 --- a/packages/trpc/lib/routers/contentstack/campaignOverviewPage/output.ts +++ b/packages/trpc/lib/routers/contentstack/campaignOverviewPage/output.ts @@ -45,7 +45,6 @@ export const campaignPageBlocksSchema = z.discriminatedUnion("__typename", [ const topCampaignSchema = z .object({ - heading: z.string(), hero: heroSchema, included_hotels: includedHotelsSchema, blocks: discriminatedUnionArray(campaignPageBlocksSchema.options), @@ -106,12 +105,15 @@ export const campaignOverviewPageSchema = z.object({ preamble: z.string(), navigation_links: navigationLinksSchema, }), - top_campaignConnection: z.object({ - edges: z.array( - z.object({ - node: topCampaignSchema, - }) - ), + top_campaign_block: z.object({ + heading: z.string().nullish(), + campaignConnection: z.object({ + edges: z.array( + z.object({ + node: topCampaignSchema, + }) + ), + }), }), blocks: discriminatedUnionArray(blocksSchema.options), system: systemSchema.merge( @@ -122,10 +124,15 @@ export const campaignOverviewPageSchema = z.object({ ), }) .transform((data) => { - const { top_campaignConnection, ...rest } = data + const { top_campaign_block, ...rest } = data return { ...rest, - topCampaign: top_campaignConnection.edges.map(({ node }) => node)[0], + topCampaign: { + heading: top_campaign_block.heading, + campaign: top_campaign_block.campaignConnection.edges.map( + ({ node }) => node + )[0], + }, } }), trackingProps: z.object({ @@ -163,14 +170,16 @@ const blockRefsSchema = z.discriminatedUnion("__typename", [ export const campaignOverviewPageRefsSchema = z.object({ campaign_overview_page: z.object({ header: campaignOverviewPageHeaderRefs, - top_campaignConnection: z.object({ - edges: z.array( - z.object({ - node: z.object({ - system: systemSchema, - }), - }) - ), + top_campaign_block: z.object({ + campaignConnection: z.object({ + edges: z.array( + z.object({ + node: z.object({ + system: systemSchema, + }), + }) + ), + }), }), blocks: discriminatedUnionArray(blockRefsSchema.options).nullable(), system: systemSchema, diff --git a/packages/trpc/lib/routers/contentstack/campaignOverviewPage/utils.ts b/packages/trpc/lib/routers/contentstack/campaignOverviewPage/utils.ts index d46d27842..331bf1763 100644 --- a/packages/trpc/lib/routers/contentstack/campaignOverviewPage/utils.ts +++ b/packages/trpc/lib/routers/contentstack/campaignOverviewPage/utils.ts @@ -29,10 +29,12 @@ export function getConnections({ } }) } - if (campaign_overview_page.top_campaignConnection) { - campaign_overview_page.top_campaignConnection.edges.forEach(({ node }) => { - connections.push(node.system) - }) + if (campaign_overview_page.top_campaign_block.campaignConnection) { + campaign_overview_page.top_campaign_block.campaignConnection.edges.forEach( + ({ node }) => { + connections.push(node.system) + } + ) } if (campaign_overview_page.blocks) { campaign_overview_page.blocks.forEach((block) => {