Merged in SW-3490-set-metadata-for-routes (pull request #2881)

SW-3490 set metadata for routes
* feat(SW-3490): Set metadata title for hotelreservation paths

Approved-by: Anton Gunnarsson
This commit is contained in:
Joakim Jäderberg
2025-10-01 11:34:52 +00:00
parent 4f151b143e
commit df8e223d23
25 changed files with 440 additions and 37 deletions

View File

@@ -1,11 +1,52 @@
import { AlternativeHotelsMapPage as AlternativeHotelsMapPagePrimitive } from "@scandic-hotels/booking-flow/pages/AlternativeHotelsMapPage"
import { getHotel } from "@/lib/trpc/memoizedRequests"
import { getIntl } from "@/i18n"
import { getLang } from "@/i18n/serverContext"
import styles from "./page.module.css"
import type { Metadata } from "next"
import type { LangParams, NextSearchParams, PageArgs } from "@/types/params"
export async function generateMetadata({
searchParams,
params,
}: PageArgs<LangParams, { hotel: string }>): Promise<Metadata> {
const intl = await getIntl()
const { hotel } = await searchParams
const { lang } = await params
if (!hotel || Array.isArray(hotel)) {
return {}
}
const hotelData = await getHotel({
hotelId: hotel,
language: lang,
isCardOnlyPayment: false,
})
const hotelName = hotelData?.additionalData?.name
if (!hotelName) {
return {}
}
const title = intl.formatMessage(
{
defaultMessage: "Alternatives for {value}",
},
{
value: hotelName,
}
)
return { title }
}
export default async function AlternativeHotelsMapPage(
props: PageArgs<LangParams, NextSearchParams>
) {

View File

@@ -1,13 +1,54 @@
import { AlternativeHotelsPage as AlternativeHotelsPagePrimitive } from "@scandic-hotels/booking-flow/pages/AlternativeHotelsPage"
import { getHotel } from "@/lib/trpc/memoizedRequests"
import { getIntl } from "@/i18n"
import { getLang } from "@/i18n/serverContext"
import type { Metadata } from "next"
import {
type LangParams,
type NextSearchParams,
type PageArgs,
} from "@/types/params"
export async function generateMetadata({
searchParams,
params,
}: PageArgs<LangParams, { hotel: string }>): Promise<Metadata> {
const intl = await getIntl()
const { hotel } = await searchParams
const { lang } = await params
if (!hotel || Array.isArray(hotel)) {
return {}
}
const hotelData = await getHotel({
hotelId: hotel,
language: lang,
isCardOnlyPayment: false,
})
const hotelName = hotelData?.additionalData?.name
if (!hotelName) {
return {}
}
const title = intl.formatMessage(
{
defaultMessage: "Alternatives for {value}",
},
{
value: hotelName,
}
)
return { title }
}
export default async function AlternativeHotelsPage(
props: PageArgs<LangParams, NextSearchParams>
) {