feat(SW-1846): Added query to fetch metadata on start page

* feat(SW-1846): Added query to fetch metadata on start page


Approved-by: Matilda Landström
This commit is contained in:
Erik Tiekstra
2025-03-13 09:11:30 +00:00
parent 91c36ee41c
commit a1303d3dae
5 changed files with 32 additions and 2 deletions

View File

@@ -0,0 +1,19 @@
#import "../../Fragments/Metadata.graphql"
#import "../../Fragments/System.graphql"
query GetStartPageMetadata($locale: String!, $uid: String!) {
start_page(locale: $locale, uid: $uid) {
web {
seo_metadata {
...Metadata
}
}
header {
heading
hero_image
}
system {
...System
}
}
}

View File

@@ -43,6 +43,7 @@ import {
import { internalServerError } from "@/server/errors/trpc"
import { generateTag } from "@/utils/generateTag"
import { removeTrailingSlash } from "@/utils/url"
import { validateLanguageSwitcherData } from "./output"
import {
@@ -172,7 +173,7 @@ export async function getUrlsOfAllLanguages(
const item = response.data[key as Lang]
const url = item
? item.web?.original_url || `/${key}${item.url}`
? item.web?.original_url || removeTrailingSlash(`/${key}${item.url}`)
: undefined
return {

View File

@@ -88,6 +88,7 @@ export const rawMetadataSchema = z.object({
.object({
heading: z.string().optional().nullable(),
preamble: z.string().optional().nullable(),
hero_image: tempImageVaultAssetSchema.nullable(),
})
.optional()
.nullable(),

View File

@@ -9,6 +9,7 @@ import { GetDestinationCountryPageMetadata } from "@/lib/graphql/Query/Destinati
import { GetDestinationOverviewPageMetadata } from "@/lib/graphql/Query/DestinationOverviewPage/Metadata.graphql"
import { GetHotelPageMetadata } from "@/lib/graphql/Query/HotelPage/Metadata.graphql"
import { GetLoyaltyPageMetadata } from "@/lib/graphql/Query/LoyaltyPage/Metadata.graphql"
import { GetStartPageMetadata } from "@/lib/graphql/Query/StartPage/Metadata.graphql"
import { request } from "@/lib/graphql/request"
import { notFound } from "@/server/errors/trpc"
import { contentStackUidWithServiceProcedure, router } from "@/server/trpc"
@@ -262,6 +263,14 @@ export const metadataQueryRouter = router({
},
alternates
)
case PageContentTypeEnum.startPage:
const startPageResponse = await fetchMetadata<{
start_page: RawMetadataSchema
}>(GetStartPageMetadata, variables)
return getTransformedMetadata(
startPageResponse.start_page,
alternates
)
default:
return null
}

View File

@@ -157,7 +157,7 @@ export function getDescription(data: RawMetadataSchema) {
export function getImage(data: RawMetadataSchema) {
const metadataImage = data.web?.seo_metadata?.seo_image
const heroImage = data.hero_image
const heroImage = data.hero_image || data.header?.hero_image
const hotelImage =
data.hotelData?.gallery?.heroImages?.[0] ||
data.hotelData?.gallery?.smallerImages?.[0]