diff --git a/app/[lang]/(live)/(public)/[contentType]/[uid]/layout.tsx b/app/[lang]/(live)/(public)/[contentType]/[uid]/layout.tsx
index ec2cddb4b..8ffc3c82d 100644
--- a/app/[lang]/(live)/(public)/[contentType]/[uid]/layout.tsx
+++ b/app/[lang]/(live)/(public)/[contentType]/[uid]/layout.tsx
@@ -1,5 +1,3 @@
-import { getBreadcrumbsListSchema } from "@/utils/getJsonSchemas"
-
import styles from "./layout.module.css"
import {
@@ -9,9 +7,7 @@ import {
UIDParams,
} from "@/types/params"
-export { generateMetadata } from "@/utils/generateMetadata"
-
-export default async function ContentTypeLayout({
+export default function ContentTypeLayout({
breadcrumbs,
preview,
children,
@@ -21,25 +17,13 @@ export default async function ContentTypeLayout({
preview: React.ReactNode
}
>) {
- const breadcrumbsListSchema = await getBreadcrumbsListSchema()
-
return (
- <>
- {breadcrumbsListSchema ? (
-
- ) : null}
-
-
- {preview}
- {breadcrumbs}
- {children}
-
-
- >
+
+
+ {preview}
+ {breadcrumbs}
+ {children}
+
+
)
}
diff --git a/app/[lang]/(live)/(public)/[contentType]/[uid]/page.tsx b/app/[lang]/(live)/(public)/[contentType]/[uid]/page.tsx
index 3460f0774..215e3aec8 100644
--- a/app/[lang]/(live)/(public)/[contentType]/[uid]/page.tsx
+++ b/app/[lang]/(live)/(public)/[contentType]/[uid]/page.tsx
@@ -17,6 +17,8 @@ import {
UIDParams,
} from "@/types/params"
+export { generateMetadata } from "@/utils/generateMetadata"
+
export default function ContentTypePage({
params,
}: PageArgs) {
diff --git a/components/Breadcrumbs/index.tsx b/components/Breadcrumbs/index.tsx
index 31a4d445a..00d3d7985 100644
--- a/components/Breadcrumbs/index.tsx
+++ b/components/Breadcrumbs/index.tsx
@@ -1,6 +1,7 @@
import { serverClient } from "@/lib/trpc/server"
import BreadcrumbsComp from "@/components/TempDesignSystem/Breadcrumbs"
+import { generateBreadcrumbsSchema } from "@/utils/jsonSchemas"
export default async function Breadcrumbs() {
const breadcrumbs = await serverClient().contentstack.breadcrumbs.get()
@@ -8,6 +9,17 @@ export default async function Breadcrumbs() {
if (!breadcrumbs?.length) {
return null
}
+ const jsonSchema = generateBreadcrumbsSchema(breadcrumbs)
- return
+ return (
+ <>
+
+
+ >
+ )
}
diff --git a/lib/graphql/Fragments/MetaData.graphql b/lib/graphql/Fragments/MetaData.graphql
deleted file mode 100644
index 9c91793f8..000000000
--- a/lib/graphql/Fragments/MetaData.graphql
+++ /dev/null
@@ -1,13 +0,0 @@
-fragment MetaDataImageConnection on SeoMetadata {
- imageConnection {
- edges {
- node {
- dimension {
- height
- width
- }
- url(transform: { width: "1200" })
- }
- }
- }
-}
diff --git a/lib/graphql/Fragments/Metadata.graphql b/lib/graphql/Fragments/Metadata.graphql
new file mode 100644
index 000000000..2b5b891f1
--- /dev/null
+++ b/lib/graphql/Fragments/Metadata.graphql
@@ -0,0 +1,30 @@
+fragment MetadataImageConnection on SeoMetadata {
+ imageConnection {
+ edges {
+ node {
+ dimension {
+ height
+ width
+ }
+ url(transform: { width: "1200" })
+ }
+ }
+ }
+}
+
+fragment Metadata on SeoMetadata {
+ noindex
+ description
+ title
+ imageConnection {
+ edges {
+ node {
+ dimension {
+ height
+ width
+ }
+ url(transform: { width: "1200" })
+ }
+ }
+ }
+}
diff --git a/lib/graphql/Query/AccountPage/MetaData.graphql b/lib/graphql/Query/AccountPage/Metadata.graphql
similarity index 54%
rename from lib/graphql/Query/AccountPage/MetaData.graphql
rename to lib/graphql/Query/AccountPage/Metadata.graphql
index 005c99004..94073ac91 100644
--- a/lib/graphql/Query/AccountPage/MetaData.graphql
+++ b/lib/graphql/Query/AccountPage/Metadata.graphql
@@ -1,16 +1,14 @@
-#import "../../Fragments/MetaData.graphql"
+#import "../../Fragments/Metadata.graphql"
#import "../../Fragments/System.graphql"
-query GetAccountPageMetaData($locale: String!, $uid: String!) {
+query GetAccountPageMetadata($locale: String!, $uid: String!) {
account_page(locale: $locale, uid: $uid) {
web {
breadcrumbs {
title
}
seo_metadata {
- description
- title
- ...MetaDataImageConnection
+ ...Metadata
}
}
system {
diff --git a/lib/graphql/Query/CollectionPage/Metadata.graphql b/lib/graphql/Query/CollectionPage/Metadata.graphql
index c06a3171b..e404ee230 100644
--- a/lib/graphql/Query/CollectionPage/Metadata.graphql
+++ b/lib/graphql/Query/CollectionPage/Metadata.graphql
@@ -1,16 +1,14 @@
-#import "../../Fragments/MetaData.graphql"
+#import "../../Fragments/Metadata.graphql"
#import "../../Fragments/System.graphql"
-query GetCollectionPageMetaData($locale: String!, $uid: String!) {
+query GetCollectionPageMetadata($locale: String!, $uid: String!) {
collection_page(locale: $locale, uid: $uid) {
web {
breadcrumbs {
title
}
seo_metadata {
- description
- title
- ...MetaDataImageConnection
+ ...Metadata
}
}
header {
diff --git a/lib/graphql/Query/ContentPage/Metadata.graphql b/lib/graphql/Query/ContentPage/Metadata.graphql
index 7a9e46070..c156c8cad 100644
--- a/lib/graphql/Query/ContentPage/Metadata.graphql
+++ b/lib/graphql/Query/ContentPage/Metadata.graphql
@@ -1,16 +1,14 @@
-#import "../../Fragments/MetaData.graphql"
+#import "../../Fragments/Metadata.graphql"
#import "../../Fragments/System.graphql"
-query GetContentPageMetaData($locale: String!, $uid: String!) {
+query GetContentPageMetadata($locale: String!, $uid: String!) {
content_page(locale: $locale, uid: $uid) {
web {
breadcrumbs {
title
}
seo_metadata {
- description
- title
- ...MetaDataImageConnection
+ ...Metadata
}
}
header {
diff --git a/lib/graphql/Query/LoyaltyPage/MetaData.graphql b/lib/graphql/Query/LoyaltyPage/Metadata.graphql
similarity index 70%
rename from lib/graphql/Query/LoyaltyPage/MetaData.graphql
rename to lib/graphql/Query/LoyaltyPage/Metadata.graphql
index f5fb5bc64..c22d46bd2 100644
--- a/lib/graphql/Query/LoyaltyPage/MetaData.graphql
+++ b/lib/graphql/Query/LoyaltyPage/Metadata.graphql
@@ -1,17 +1,15 @@
-#import "../../Fragments/MetaData.graphql"
+#import "../../Fragments/Metadata.graphql"
#import "../../Fragments/System.graphql"
-query GetLoyaltyPageMetaData($locale: String!, $uid: String!) {
+query GetLoyaltyPageMetadata($locale: String!, $uid: String!) {
loyalty_page(locale: $locale, uid: $uid) {
web {
- seo_metadata {
- description
- title
- ...MetaDataImageConnection
- }
breadcrumbs {
title
}
+ seo_metadata {
+ ...Metadata
+ }
}
heading
preamble
diff --git a/server/routers/contentstack/breadcrumbs/query.ts b/server/routers/contentstack/breadcrumbs/query.ts
index 14f32280c..4d6e24a0c 100644
--- a/server/routers/contentstack/breadcrumbs/query.ts
+++ b/server/routers/contentstack/breadcrumbs/query.ts
@@ -1,7 +1,6 @@
import { metrics } from "@opentelemetry/api"
import { cache } from "react"
-import { Lang } from "@/constants/languages"
import {
GetMyPagesBreadcrumbs,
GetMyPagesBreadcrumbsRefs,
@@ -26,10 +25,11 @@ import { breadcrumbsRefsSchema, breadcrumbsSchema } from "./output"
import { getTags } from "./utils"
import { PageTypeEnum } from "@/types/requests/pageType"
-import {
+import type {
BreadcrumbsRefsSchema,
RawBreadcrumbsSchema,
} from "@/types/trpc/routers/contentstack/breadcrumbs"
+import type { Lang } from "@/constants/languages"
const meter = metrics.getMeter("trpc.breadcrumbs")
diff --git a/server/routers/contentstack/breadcrumbs/utils.ts b/server/routers/contentstack/breadcrumbs/utils.ts
index ec6a32c38..65845fc87 100644
--- a/server/routers/contentstack/breadcrumbs/utils.ts
+++ b/server/routers/contentstack/breadcrumbs/utils.ts
@@ -4,12 +4,7 @@ import { generateTag, generateTags } from "@/utils/generateTag"
import type { Edges } from "@/types/requests/utils/edges"
import type { NodeRefs } from "@/types/requests/utils/refs"
-import { BreadcrumbsRefsSchema } from "@/types/trpc/routers/contentstack/breadcrumbs"
-
-export type Variables = {
- lang: Lang
- uid: string
-}
+import type { BreadcrumbsRefsSchema } from "@/types/trpc/routers/contentstack/breadcrumbs"
export const affix = "breadcrumbs"
diff --git a/server/routers/contentstack/index.ts b/server/routers/contentstack/index.ts
index 2456c4f97..68764c6ac 100644
--- a/server/routers/contentstack/index.ts
+++ b/server/routers/contentstack/index.ts
@@ -10,7 +10,7 @@ import { hotelPageRouter } from "./hotelPage"
import { languageSwitcherRouter } from "./languageSwitcher"
import { loyaltyLevelRouter } from "./loyaltyLevel"
import { loyaltyPageRouter } from "./loyaltyPage"
-import { metaDataRouter } from "./metadata"
+import { metadataRouter } from "./metadata"
import { myPagesRouter } from "./myPages"
import { rewardRouter } from "./reward"
@@ -25,7 +25,7 @@ export const contentstackRouter = router({
collectionPage: collectionPageRouter,
contentPage: contentPageRouter,
myPages: myPagesRouter,
- metaData: metaDataRouter,
+ metadata: metadataRouter,
rewards: rewardRouter,
loyaltyLevels: loyaltyLevelRouter,
})
diff --git a/server/routers/contentstack/metadata/index.ts b/server/routers/contentstack/metadata/index.ts
index fa2618123..4da22bdee 100644
--- a/server/routers/contentstack/metadata/index.ts
+++ b/server/routers/contentstack/metadata/index.ts
@@ -1,5 +1,5 @@
import { mergeRouters } from "@/server/trpc"
-import { metaDataQueryRouter } from "./query"
+import { metadataQueryRouter } from "./query"
-export const metaDataRouter = mergeRouters(metaDataQueryRouter)
+export const metadataRouter = mergeRouters(metadataQueryRouter)
diff --git a/server/routers/contentstack/metadata/output.ts b/server/routers/contentstack/metadata/output.ts
index e4f580dbb..95d497357 100644
--- a/server/routers/contentstack/metadata/output.ts
+++ b/server/routers/contentstack/metadata/output.ts
@@ -3,14 +3,17 @@ import { z } from "zod"
import { tempImageVaultAssetSchema } from "../schemas/imageVault"
import { getDescription, getImages, getTitle } from "./utils"
+import type { Metadata } from "next"
+
import { RTETypeEnum } from "@/types/rte/enums"
-export const rawMetaDataDataSchema = z.object({
+export const rawMetadataSchema = z.object({
web: z.object({
seo_metadata: z
.object({
title: z.string().optional().nullable(),
description: z.string().optional().nullable(),
+ noindex: z.boolean().optional().nullable(),
imageConnection: z
.object({
edges: z.array(
@@ -78,12 +81,17 @@ export const rawMetaDataDataSchema = z.object({
.nullable(),
})
-export const metaDataSchema = rawMetaDataDataSchema.transform((data) => {
- return {
+export const metadataSchema = rawMetadataSchema.transform((data) => {
+ const metadata: Metadata = {
+ robots: {
+ index: !data.web.seo_metadata?.noindex,
+ follow: true,
+ },
title: getTitle(data),
description: getDescription(data),
openGraph: {
images: getImages(data),
},
}
+ return metadata
})
diff --git a/server/routers/contentstack/metadata/query.ts b/server/routers/contentstack/metadata/query.ts
index 9b1d0dce7..df239d44a 100644
--- a/server/routers/contentstack/metadata/query.ts
+++ b/server/routers/contentstack/metadata/query.ts
@@ -1,52 +1,52 @@
import { metrics } from "@opentelemetry/api"
import { cache } from "react"
-import { Lang } from "@/constants/languages"
-import { GetAccountPageMetaData } from "@/lib/graphql/Query/AccountPage/MetaData.graphql"
-import { GetCollectionPageMetaData } from "@/lib/graphql/Query/CollectionPage/MetaData.graphql"
-import { GetContentPageMetaData } from "@/lib/graphql/Query/ContentPage/MetaData.graphql"
-import { GetLoyaltyPageMetaData } from "@/lib/graphql/Query/LoyaltyPage/MetaData.graphql"
+import { GetAccountPageMetadata } from "@/lib/graphql/Query/AccountPage/Metadata.graphql"
+import { GetCollectionPageMetadata } from "@/lib/graphql/Query/CollectionPage/Metadata.graphql"
+import { GetContentPageMetadata } from "@/lib/graphql/Query/ContentPage/Metadata.graphql"
+import { GetLoyaltyPageMetadata } from "@/lib/graphql/Query/LoyaltyPage/Metadata.graphql"
import { request } from "@/lib/graphql/request"
import { notFound } from "@/server/errors/trpc"
import { contentstackExtendedProcedureUID, router } from "@/server/trpc"
import { generateTag } from "@/utils/generateTag"
-import { metaDataSchema } from "./output"
+import { metadataSchema } from "./output"
import { affix } from "./utils"
import { PageTypeEnum } from "@/types/requests/pageType"
-import { RawMetaDataSchema } from "@/types/trpc/routers/contentstack/metadata"
+import type { RawMetadataSchema } from "@/types/trpc/routers/contentstack/metadata"
+import type { Lang } from "@/constants/languages"
-const meter = metrics.getMeter("trpc.metaData")
+const meter = metrics.getMeter("trpc.metadata")
// OpenTelemetry metrics
-const fetchMetaDataCounter = meter.createCounter(
- "trpc.contentstack.metaData.get"
+const fetchMetadataCounter = meter.createCounter(
+ "trpc.contentstack.metadata.get"
)
-const fetchMetaDataSuccessCounter = meter.createCounter(
- "trpc.contentstack.metaData.get-success"
+const fetchMetadataSuccessCounter = meter.createCounter(
+ "trpc.contentstack.metadata.get-success"
)
-const fetchMetaDataFailCounter = meter.createCounter(
- "trpc.contentstack.metaData.get-fail"
+const fetchMetadataFailCounter = meter.createCounter(
+ "trpc.contentstack.metadata.get-fail"
)
-const transformMetaDataCounter = meter.createCounter(
- "trpc.contentstack.metaData.transform"
+const transformMetadataCounter = meter.createCounter(
+ "trpc.contentstack.metadata.transform"
)
-const transformMetaDataSuccessCounter = meter.createCounter(
- "trpc.contentstack.metaData.transform-success"
+const transformMetadataSuccessCounter = meter.createCounter(
+ "trpc.contentstack.metadata.transform-success"
)
-const transformMetaDataFailCounter = meter.createCounter(
- "trpc.contentstack.metaData.transform-fail"
+const transformMetadataFailCounter = meter.createCounter(
+ "trpc.contentstack.metadata.transform-fail"
)
-const fetchMetaData = cache(async function fetchMemoizedMetaData(
+const fetchMetadata = cache(async function fetchMemoizedMetadata(
query: string,
{ uid, lang }: { uid: string; lang: Lang }
) {
- fetchMetaDataCounter.add(1, { lang, uid })
+ fetchMetadataCounter.add(1, { lang, uid })
console.info(
- "contentstack.metaData fetch start",
+ "contentstack.metadata fetch start",
JSON.stringify({ query: { lang, uid } })
)
const response = await request(
@@ -61,14 +61,14 @@ const fetchMetaData = cache(async function fetchMemoizedMetaData(
)
if (!response.data) {
const notFoundError = notFound(response)
- fetchMetaDataFailCounter.add(1, {
+ fetchMetadataFailCounter.add(1, {
lang,
uid,
error_type: "not_found",
error: JSON.stringify({ code: notFoundError.code }),
})
console.error(
- "contentstack.metaData fetch not found error",
+ "contentstack.metadata fetch not found error",
JSON.stringify({
query: { lang, uid },
error: { code: notFoundError.code },
@@ -77,41 +77,41 @@ const fetchMetaData = cache(async function fetchMemoizedMetaData(
throw notFoundError
}
- fetchMetaDataSuccessCounter.add(1, { lang, uid })
+ fetchMetadataSuccessCounter.add(1, { lang, uid })
console.info(
- "contentstack.metaData fetch success",
+ "contentstack.metadata fetch success",
JSON.stringify({ query: { lang, uid } })
)
return response.data
})
-function getTransformedMetaData(data: unknown) {
- transformMetaDataCounter.add(1)
- console.info("contentstack.metaData transform start")
- const validatedMetaData = metaDataSchema.safeParse(data)
+function getTransformedMetadata(data: unknown) {
+ transformMetadataCounter.add(1)
+ console.info("contentstack.metadata transform start")
+ const validatedMetadata = metadataSchema.safeParse(data)
- if (!validatedMetaData.success) {
- transformMetaDataFailCounter.add(1, {
+ if (!validatedMetadata.success) {
+ transformMetadataFailCounter.add(1, {
error_type: "validation_error",
- error: JSON.stringify(validatedMetaData.error),
+ error: JSON.stringify(validatedMetadata.error),
})
console.error(
- "contentstack.metaData validation error",
+ "contentstack.metadata validation error",
JSON.stringify({
- error: validatedMetaData.error,
+ error: validatedMetadata.error,
})
)
return null
}
- transformMetaDataSuccessCounter.add(1)
- console.info("contentstack.metaData transform success")
+ transformMetadataSuccessCounter.add(1)
+ console.info("contentstack.metadata transform success")
- return validatedMetaData.data
+ return validatedMetadata.data
}
-export const metaDataQueryRouter = router({
+export const metadataQueryRouter = router({
get: contentstackExtendedProcedureUID.query(async ({ ctx }) => {
const variables = {
lang: ctx.lang,
@@ -120,25 +120,25 @@ export const metaDataQueryRouter = router({
switch (ctx.contentType) {
case PageTypeEnum.accountPage:
- const accountPageResponse = await fetchMetaData<{
- account_page: RawMetaDataSchema
- }>(GetAccountPageMetaData, variables)
- return getTransformedMetaData(accountPageResponse.account_page)
+ const accountPageResponse = await fetchMetadata<{
+ account_page: RawMetadataSchema
+ }>(GetAccountPageMetadata, variables)
+ return getTransformedMetadata(accountPageResponse.account_page)
case PageTypeEnum.collectionPage:
- const collectionPageResponse = await fetchMetaData<{
- collection_page: RawMetaDataSchema
- }>(GetCollectionPageMetaData, variables)
- return getTransformedMetaData(collectionPageResponse.collection_page)
+ const collectionPageResponse = await fetchMetadata<{
+ collection_page: RawMetadataSchema
+ }>(GetCollectionPageMetadata, variables)
+ return getTransformedMetadata(collectionPageResponse.collection_page)
case PageTypeEnum.contentPage:
- const contentPageResponse = await fetchMetaData<{
- content_page: RawMetaDataSchema
- }>(GetContentPageMetaData, variables)
- return getTransformedMetaData(contentPageResponse.content_page)
+ const contentPageResponse = await fetchMetadata<{
+ content_page: RawMetadataSchema
+ }>(GetContentPageMetadata, variables)
+ return getTransformedMetadata(contentPageResponse.content_page)
case PageTypeEnum.loyaltyPage:
- const loyaltyPageResponse = await fetchMetaData<{
- loyalty_page: RawMetaDataSchema
- }>(GetLoyaltyPageMetaData, variables)
- return getTransformedMetaData(loyaltyPageResponse.loyalty_page)
+ const loyaltyPageResponse = await fetchMetadata<{
+ loyalty_page: RawMetadataSchema
+ }>(GetLoyaltyPageMetadata, variables)
+ return getTransformedMetadata(loyaltyPageResponse.loyalty_page)
default:
return null
}
diff --git a/server/routers/contentstack/metadata/utils.ts b/server/routers/contentstack/metadata/utils.ts
index 360ac296e..eeadf11e1 100644
--- a/server/routers/contentstack/metadata/utils.ts
+++ b/server/routers/contentstack/metadata/utils.ts
@@ -1,12 +1,12 @@
import { RTETypeEnum } from "@/types/rte/enums"
-import { RawMetaDataSchema } from "@/types/trpc/routers/contentstack/metadata"
+import type { RawMetadataSchema } from "@/types/trpc/routers/contentstack/metadata"
export const affix = "metadata"
-export function getTitle(data: RawMetaDataSchema) {
- const metaData = data.web.seo_metadata
- if (metaData?.title) {
- return metaData.title
+export function getTitle(data: RawMetadataSchema) {
+ const metadata = data.web.seo_metadata
+ if (metadata?.title) {
+ return metadata.title
}
if (data.web?.breadcrumbs?.title) {
return data.web.breadcrumbs.title
@@ -20,10 +20,10 @@ export function getTitle(data: RawMetaDataSchema) {
return ""
}
-export function getDescription(data: RawMetaDataSchema) {
- const metaData = data.web.seo_metadata
- if (metaData?.description) {
- return metaData.description
+export function getDescription(data: RawMetadataSchema) {
+ const metadata = data.web.seo_metadata
+ if (metadata?.description) {
+ return metadata.description
}
if (data.preamble) {
return data.preamble
@@ -45,12 +45,12 @@ export function getDescription(data: RawMetaDataSchema) {
return ""
}
-export function getImages(data: RawMetaDataSchema) {
- const metaDataImages = data.web.seo_metadata?.imageConnection?.edges
+export function getImages(data: RawMetadataSchema) {
+ const metadataImages = data.web.seo_metadata?.imageConnection?.edges
const heroImage = data.hero_image
- if (metaDataImages?.length) {
- return metaDataImages.map((edge) => {
+ if (metadataImages?.length) {
+ return metadataImages.map((edge) => {
const { width, height } = edge.node.dimension
return {
url: edge.node.url,
diff --git a/types/trpc/routers/contentstack/metadata.ts b/types/trpc/routers/contentstack/metadata.ts
index d4984103a..a02e0d858 100644
--- a/types/trpc/routers/contentstack/metadata.ts
+++ b/types/trpc/routers/contentstack/metadata.ts
@@ -1,6 +1,5 @@
import { z } from "zod"
-import { rawMetaDataDataSchema } from "@/server/routers/contentstack/metadata/output"
+import { rawMetadataSchema } from "@/server/routers/contentstack/metadata/output"
-export interface RawMetaDataSchema
- extends z.output {}
+export interface RawMetadataSchema extends z.output {}
diff --git a/utils/generateMetadata.ts b/utils/generateMetadata.ts
index fa17da439..6b50d26a0 100644
--- a/utils/generateMetadata.ts
+++ b/utils/generateMetadata.ts
@@ -1,7 +1,7 @@
import { serverClient } from "@/lib/trpc/server"
export async function generateMetadata() {
- const data = await serverClient().contentstack.metaData.get()
+ const data = await serverClient().contentstack.metadata.get()
return data
}
diff --git a/utils/getJsonSchemas.ts b/utils/jsonSchemas.ts
similarity index 60%
rename from utils/getJsonSchemas.ts
rename to utils/jsonSchemas.ts
index c297cf69f..4a1308d0d 100644
--- a/utils/getJsonSchemas.ts
+++ b/utils/jsonSchemas.ts
@@ -1,15 +1,10 @@
import { env } from "@/env/server"
-import { serverClient } from "@/lib/trpc/server"
import type { BreadcrumbList, ListItem, WithContext } from "schema-dts"
-import { Breadcrumbs } from "@/types/trpc/routers/contentstack/breadcrumbs"
-
-function generateBreadcrumbsSchema(breadcrumbs: Breadcrumbs) {
- if (!breadcrumbs.length) {
- return null
- }
+import type { Breadcrumbs } from "@/types/trpc/routers/contentstack/breadcrumbs"
+export function generateBreadcrumbsSchema(breadcrumbs: Breadcrumbs) {
const itemListElement: ListItem[] = breadcrumbs.map((item, index) => ({
"@type": "ListItem",
position: index + 1,
@@ -30,8 +25,3 @@ function generateBreadcrumbsSchema(breadcrumbs: Breadcrumbs) {
jsonLd,
}
}
-
-export async function getBreadcrumbsListSchema() {
- const breadcrumbs = await serverClient().contentstack.breadcrumbs.get()
- return generateBreadcrumbsSchema(breadcrumbs)
-}