feat(SW-266): Moved logic for breadcrumbs since I cant pass custom prop to generateMetadata

This commit is contained in:
Pontus Dreij
2024-08-21 15:27:44 +02:00
parent 09639badb4
commit a0fede3875
4 changed files with 7 additions and 41 deletions

View File

@@ -12,6 +12,7 @@ CURITY_CLIENT_SECRET_SERVICE="test"
CURITY_CLIENT_ID_USER="test" CURITY_CLIENT_ID_USER="test"
CURITY_CLIENT_SECRET_USER="test" CURITY_CLIENT_SECRET_USER="test"
CURITY_ISSUER_USER="test" CURITY_ISSUER_USER="test"
CURITY_ISSUER_SERVICE="test"
CYPRESS_API_BASEURL="test" CYPRESS_API_BASEURL="test"
CYPRESS_CURITY_USERNAME="test" CYPRESS_CURITY_USERNAME="test"
CYPRESS_CURITY_PASSWORD="test" CYPRESS_CURITY_PASSWORD="test"
@@ -35,3 +36,4 @@ SEAMLESS_LOGOUT_FI="test"
SEAMLESS_LOGOUT_NO="test" SEAMLESS_LOGOUT_NO="test"
SEAMLESS_LOGOUT_SV="test" SEAMLESS_LOGOUT_SV="test"
WEBVIEW_ENCRYPTION_KEY="test" WEBVIEW_ENCRYPTION_KEY="test"
BOOKING_ENCRYPTION_KEY="test"

View File

@@ -5,23 +5,11 @@ import Title from "@/components/TempDesignSystem/Text/Title"
import TrackingSDK from "@/components/TrackingSDK" import TrackingSDK from "@/components/TrackingSDK"
import { getIntl } from "@/i18n" import { getIntl } from "@/i18n"
import { setLang } from "@/i18n/serverContext" import { setLang } from "@/i18n/serverContext"
import { generateMetadata as generateBaseMetadata } from "@/utils/generateMetadata"
import styles from "./page.module.css" import styles from "./page.module.css"
import type { LangParams, PageArgs } from "@/types/params" import type { LangParams, PageArgs } from "@/types/params"
export async function generateMetadata({ params }: PageArgs<LangParams>) {
const breadcrumbs = await serverClient().contentstack.breadcrumbs.get()
if (!breadcrumbs?.length) {
return null
}
return generateBaseMetadata({
params,
pageTitle: breadcrumbs.at(-1)?.title,
})
}
export default async function MyPages({ export default async function MyPages({
params, params,
}: PageArgs<LangParams & { path: string[] }>) { }: PageArgs<LangParams & { path: string[] }>) {

View File

@@ -1,12 +1,9 @@
import { notFound } from "next/navigation" import { notFound } from "next/navigation"
import { serverClient } from "@/lib/trpc/server"
import ContentPage from "@/components/ContentType/ContentPage" import ContentPage from "@/components/ContentType/ContentPage"
import HotelPage from "@/components/ContentType/HotelPage/HotelPage" import HotelPage from "@/components/ContentType/HotelPage/HotelPage"
import LoyaltyPage from "@/components/ContentType/LoyaltyPage/LoyaltyPage" import LoyaltyPage from "@/components/ContentType/LoyaltyPage/LoyaltyPage"
import { setLang } from "@/i18n/serverContext" import { setLang } from "@/i18n/serverContext"
import { generateMetadata as generateBaseMetadata } from "@/utils/generateMetadata"
import { import {
ContentTypeParams, ContentTypeParams,
@@ -15,24 +12,6 @@ import {
UIDParams, UIDParams,
} from "@/types/params" } from "@/types/params"
export async function generateMetadata({
params,
}: PageArgs<LangParams & ContentTypeParams>) {
switch (params.contentType) {
case "loyalty-page":
const breadcrumbs = await serverClient().contentstack.breadcrumbs.get()
if (!breadcrumbs?.length) {
return null
}
return generateBaseMetadata({
params,
pageTitle: breadcrumbs.at(-1)?.title,
})
default:
return
}
}
export default async function ContentTypePage({ export default async function ContentTypePage({
params, params,
}: PageArgs<LangParams & ContentTypeParams & UIDParams, {}>) { }: PageArgs<LangParams & ContentTypeParams & UIDParams, {}>) {

View File

@@ -3,16 +3,12 @@ import { Metadata } from "next"
import { serverClient } from "@/lib/trpc/server" import { serverClient } from "@/lib/trpc/server"
import { MetaData } from "@/types/components/metadata" import { MetaData } from "@/types/components/metadata"
import { LangParams, PageArgs } from "@/types/params"
export async function generateMetadata({ export async function generateMetadata(): Promise<Metadata> {
params,
pageTitle,
}: PageArgs<LangParams> & {
pageTitle?: string
}): Promise<Metadata> {
const metaData: MetaData | never[] | null = const metaData: MetaData | never[] | null =
await serverClient().contentstack.metaData.get() await serverClient().contentstack.metaData.get()
const breadcrumbs = await serverClient().contentstack.breadcrumbs.get()
const pageTitle = breadcrumbs?.at(-1)?.title
if (Array.isArray(metaData)) { if (Array.isArray(metaData)) {
return { return {
@@ -23,7 +19,8 @@ export async function generateMetadata({
}, },
} }
} }
const title = metaData?.title ?? pageTitle ?? ""
const title = pageTitle ?? metaData?.title ?? "" // Use pageTitle first
const description = metaData?.description ?? "" const description = metaData?.description ?? ""
const images = const images =
metaData?.imageConnection?.edges?.map((edge) => ({ metaData?.imageConnection?.edges?.map((edge) => ({