From df2fb49d1e406cd8c52261a0020497d1ee45e1dd Mon Sep 17 00:00:00 2001 From: Anton Gunnarsson Date: Thu, 27 Mar 2025 15:27:12 +0000 Subject: [PATCH] Merged in fix/sw-1980-sas-comparison-block-link (pull request #1641) Update link in SASTierComparison to use pageLink reference * Update link in SASTierComparison to use pageLink reference Approved-by: Linus Flood --- .../components/SasTierComparison/index.tsx | 6 ++-- .../graphql/Query/SASTierComparison.graphql | 29 +++++++++++++++++-- .../routers/contentstack/partner/output.ts | 22 ++++++++++++-- 3 files changed, 50 insertions(+), 7 deletions(-) diff --git a/apps/scandic-web/components/SasTierComparison/index.tsx b/apps/scandic-web/components/SasTierComparison/index.tsx index b75262d45..7721f25de 100644 --- a/apps/scandic-web/components/SasTierComparison/index.tsx +++ b/apps/scandic-web/components/SasTierComparison/index.tsx @@ -71,10 +71,10 @@ export function SasTierComparison({ ))} - {tierComparison.cta?.href && ( + {tierComparison.cta?.link && ( )} diff --git a/apps/scandic-web/lib/graphql/Query/SASTierComparison.graphql b/apps/scandic-web/lib/graphql/Query/SASTierComparison.graphql index 6434859fb..0e07d4ac6 100644 --- a/apps/scandic-web/lib/graphql/Query/SASTierComparison.graphql +++ b/apps/scandic-web/lib/graphql/Query/SASTierComparison.graphql @@ -1,3 +1,13 @@ +#import "../Fragments/PageLink/AccountPageLink.graphql" +#import "../Fragments/PageLink/CollectionPageLink.graphql" +#import "../Fragments/PageLink/ContentPageLink.graphql" +#import "../Fragments/PageLink/DestinationCityPageLink.graphql" +#import "../Fragments/PageLink/DestinationCountryPageLink.graphql" +#import "../Fragments/PageLink/DestinationOverviewPageLink.graphql" +#import "../Fragments/PageLink/HotelPageLink.graphql" +#import "../Fragments/PageLink/LoyaltyPageLink.graphql" +#import "../Fragments/PageLink/StartPageLink.graphql" + query GetAllSasTierComparison($lang: String!) { all_sas_tier_comparison(locale: $lang) { items { @@ -15,9 +25,24 @@ query GetAllSasTierComparison($lang: String!) { title } } - cta { + call_to_action { title - href + linkConnection { + edges { + node { + __typename + ...AccountPageLink + ...CollectionPageLink + ...ContentPageLink + ...DestinationCityPageLink + ...DestinationCountryPageLink + ...DestinationOverviewPageLink + ...HotelPageLink + ...LoyaltyPageLink + ...StartPageLink + } + } + } } } } diff --git a/apps/scandic-web/server/routers/contentstack/partner/output.ts b/apps/scandic-web/server/routers/contentstack/partner/output.ts index 67340aff6..c61288684 100644 --- a/apps/scandic-web/server/routers/contentstack/partner/output.ts +++ b/apps/scandic-web/server/routers/contentstack/partner/output.ts @@ -1,5 +1,7 @@ import { z } from "zod" +import { linkUnionSchema, transformPageLink } from "../schemas/pageLinks" + const link = z.object({ href: z.string(), title: z.string(), @@ -23,9 +25,25 @@ export const validateSasTierComparisonSchema = z link: link.optional(), }) ), - cta: link.optional(), + call_to_action: z.object({ + title: z.string().optional(), + linkConnection: z.object({ + edges: z.array( + z.object({ + node: linkUnionSchema, + }) + ), + }), + }), }) ), }), }) - .transform((data) => data.all_sas_tier_comparison.items.at(0)) + .transform((data) => { + const { call_to_action, ...item } = data.all_sas_tier_comparison.items[0] + + const linkNode = call_to_action.linkConnection.edges[0]?.node + const link = transformPageLink(linkNode) + + return { ...item, cta: { title: call_to_action.title, link } } + })