@@ -8,7 +8,8 @@ import { getLocale } from 'next-intl/server'
88import { decodeSlugs } from '@/lib/helpers/getFullUrl'
99import { Flags } from '@/sanity/helpers/datasetHelpers'
1010import { getNameFromIso } from '@/sanity/helpers/localization'
11- import { routeSanityFetch } from '@/sanity/lib/fetch'
11+ import { IS_FETCH_OPTIMIZED , routeSanityFetch } from '@/sanity/lib/fetch'
12+ import { optimizedFetch } from '@/sanity/lib/simpleFetch'
1213import { constructSanityMetadata , getPage } from '@/sanity/pages/utils'
1314import { menuQuery as globalMenuQuery } from '@/sanity/queries/menu'
1415import {
@@ -23,18 +24,23 @@ type Props = {
2324 params : Promise < { slug : string [ ] ; locale : string } >
2425 searchParams : Promise < { [ key : string ] : string | string [ ] | undefined } >
2526}
27+
2628const MagazinePage = dynamic ( ( ) => import ( '@/templates/magazine/MagazinePage' ) )
2729const EventPage = dynamic ( ( ) => import ( '@/templates/event/Event' ) )
2830const NewsPage = dynamic ( ( ) => import ( '@/templates/news/News' ) )
2931const TopicPage = dynamic ( ( ) => import ( '@/templates/topic/TopicPage' ) )
3032const MagazineRoom = dynamic ( ( ) => import ( '@/templates/magazine/Magazineroom' ) )
3133
34+ const getSanityFetch = ( isDraftMode : boolean ) =>
35+ isDraftMode || ! IS_FETCH_OPTIMIZED ? routeSanityFetch : optimizedFetch
36+
3237export async function generateMetadata ( {
3338 params,
3439} : PageProps < '/[locale]/[...slug]' > ) : Promise < Metadata > {
3540 //array, separated by /. e.g. [news, last slug]
36- const { slug : encodedSlug } = await params
37- const locale = await getLocale ( )
41+ const { slug : encodedSlug , locale } = await params
42+ const { isEnabled : isDraftMode } = await draftMode ( )
43+ const sanityFetch = getSanityFetch ( isDraftMode )
3844 const slug = decodeSlugs ( encodedSlug ) as string [ ]
3945
4046 const sanityLang = getNameFromIso ( locale )
@@ -59,7 +65,7 @@ export async function generateMetadata({
5965 query = magazineroomMetaQuery
6066 }
6167
62- const { data : metaData } : { data : any } = await routeSanityFetch ( {
68+ const { data : metaData } : { data : any } = await sanityFetch ( {
6369 query,
6470 params : {
6571 lang : sanityLang ,
@@ -75,14 +81,16 @@ export async function generateMetadata({
7581}
7682
7783export default async function Page ( { params, searchParams } : Props ) {
78- const { slug, locale } = await params
84+ const { slug } = await params
85+ const locale = await getLocale ( )
7986 const resolvedSearchParams = await searchParams
8087 /* const isInPresentationToolContext =
8188 (await cookies()).get('preview-fetch-dest')?.value === 'iframe' */
8289 const { isEnabled : isDraftMode } = await draftMode ( )
90+ const sanityFetch = getSanityFetch ( isDraftMode )
8391 let pageContent = null
8492 const [ siteMenuResult , pageResults ] = await Promise . all ( [
85- routeSanityFetch ( {
93+ sanityFetch ( {
8694 query : Flags . HAS_FANCY_MENU ? globalMenuQuery : simpleMenuQuery ,
8795 params : {
8896 lang : getNameFromIso ( locale ) ?? 'en_GB' ,
@@ -93,6 +101,7 @@ export default async function Page({ params, searchParams }: Props) {
93101 slug : decodeSlugs ( slug ) ,
94102 locale,
95103 searchParams : resolvedSearchParams ,
104+ fetch : sanityFetch ,
96105 } ) ,
97106 ] )
98107 pageContent = pageResults
0 commit comments