feat(SW-201): Added hotel metadata
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import { getIntl } from "@/i18n"
|
||||
|
||||
import { RTETypeEnum } from "@/types/rte/enums"
|
||||
import type { RawMetadataSchema } from "@/types/trpc/routers/contentstack/metadata"
|
||||
|
||||
@@ -58,11 +60,18 @@ function truncateTextAfterLastPeriod(
|
||||
return `${maxLengthText}...`
|
||||
}
|
||||
|
||||
export function getTitle(data: RawMetadataSchema) {
|
||||
export async function getTitle(data: RawMetadataSchema) {
|
||||
const intl = await getIntl()
|
||||
const metadata = data.web?.seo_metadata
|
||||
if (metadata?.title) {
|
||||
return metadata.title
|
||||
}
|
||||
if (data.hotelData) {
|
||||
return intl.formatMessage(
|
||||
{ id: "Stay at HOTEL_NAME | Hotel in DESTINATION" },
|
||||
{ hotelName: data.hotelData.name, destination: data.hotelData.city }
|
||||
)
|
||||
}
|
||||
if (data.web?.breadcrumbs?.title) {
|
||||
return data.web.breadcrumbs.title
|
||||
}
|
||||
@@ -75,11 +84,15 @@ export function getTitle(data: RawMetadataSchema) {
|
||||
return ""
|
||||
}
|
||||
|
||||
export function getDescription(data: RawMetadataSchema) {
|
||||
export async function getDescription(data: RawMetadataSchema) {
|
||||
const intl = await getIntl()
|
||||
const metadata = data.web?.seo_metadata
|
||||
if (metadata?.description) {
|
||||
return metadata.description
|
||||
}
|
||||
if (data.hotelData) {
|
||||
return data.hotelData.description
|
||||
}
|
||||
if (data.preamble) {
|
||||
return truncateTextAfterLastPeriod(data.preamble)
|
||||
}
|
||||
@@ -108,22 +121,23 @@ export function getImages(data: RawMetadataSchema) {
|
||||
|
||||
// Currently we don't have the possibility to get smaller images from ImageVault (2024-11-15)
|
||||
if (metadataImage) {
|
||||
return [
|
||||
{
|
||||
url: metadataImage.url,
|
||||
width: metadataImage.dimensions.width,
|
||||
height: metadataImage.dimensions.height,
|
||||
},
|
||||
]
|
||||
return {
|
||||
url: metadataImage.url,
|
||||
alt: metadataImage.meta.alt || undefined,
|
||||
width: metadataImage.dimensions.width,
|
||||
height: metadataImage.dimensions.height,
|
||||
}
|
||||
}
|
||||
if (data.hotelData?.image) {
|
||||
return data.hotelData.image
|
||||
}
|
||||
if (heroImage) {
|
||||
return [
|
||||
{
|
||||
url: heroImage.url,
|
||||
width: heroImage.dimensions.width,
|
||||
height: heroImage.dimensions.height,
|
||||
},
|
||||
]
|
||||
return {
|
||||
url: heroImage.url,
|
||||
alt: heroImage.meta.alt || undefined,
|
||||
width: heroImage.dimensions.width,
|
||||
height: heroImage.dimensions.height,
|
||||
}
|
||||
}
|
||||
return []
|
||||
return undefined
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user