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:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user