diff --git a/packages/core/app/fs-next-update/page.tsx b/packages/core/app/fs-next-update/page.tsx index 19ae03dd54..9201b9116c 100644 --- a/packages/core/app/fs-next-update/page.tsx +++ b/packages/core/app/fs-next-update/page.tsx @@ -5,8 +5,8 @@ import CUSTOM_COMPONENTS from 'src/customizations/src/components' import RenderSections from 'app/components/cms/RenderSections' import { OverriddenDefaultBannerText as BannerText } from 'app/components/sections/BannerText/OverriddenDefaultBannerText' import { OverriddenDefaultHero as Hero } from 'app/components/sections/Hero/OverriddenDefaultHero' -import { OverriddenDefaultProductShelf as ProductShelf } from 'app/components/sections/ProductShelf/OverriddenDefaultProductShelf' import { OverriddenDefaultNewsletter as Newsletter } from 'app/components/sections/Newsletter/OverriddenDefaultNewsletter' +import { OverriddenDefaultProductShelf as ProductShelf } from 'app/components/sections/ProductShelf/OverriddenDefaultProductShelf' import BannerNewsletter from 'app/components/sections/BannerNewsletter/BannerNewsletter' import ProductTiles from 'app/components/sections/ProductTiles' @@ -14,6 +14,7 @@ import Incentives from 'app/components/sections/Incentives' import PageProvider from 'app/sdk/overrides/PageProvider' import { getDynamicContent } from 'app/utils/dynamicContent' import { ComponentType } from 'react' + import storeConfig from '../../faststore.config' /* A list of components that can be used in the CMS. */ @@ -53,6 +54,27 @@ const getHomeData = async () => { return { page, serverData } } +export async function generateMetadata() { + const { + page: { settings }, + } = await getHomeData() + return { + title: settings?.seo?.title ?? storeConfig.seo.title, + description: settings?.seo?.description ?? storeConfig.seo?.description, + titleTemplate: storeConfig.seo?.titleTemplate ?? storeConfig.seo?.title, + alternates: { + canonical: settings?.seo?.canonical ?? storeConfig.storeUrl, + }, + metadataBase: new URL(storeConfig.storeUrl), + openGraph: { + type: 'website', + url: storeConfig.storeUrl, + title: settings?.seo?.title ?? storeConfig.seo.title, + description: settings?.seo?.description ?? storeConfig.seo.description, + }, + } +} + async function Page() { const { page: { sections }, @@ -63,10 +85,30 @@ async function Page() { data: serverData, } + const jsonLd = { + '@context': 'https://schema.org', + '@type': 'WebSite', + url: storeConfig.storeUrl, + potentialAction: [ + { + '@type': 'SearchAction', + target: `${storeConfig.storeUrl}/s/?q={search_term_string}`, + 'query-input': 'required name=search_term_string', + }, + ], + } + return ( - - - + <> + {/* Adding JSON-LD schema to the page */} +