Skip to content

Commit 393fd70

Browse files
committed
Fix build #3890
1 parent 28866f7 commit 393fd70

3 files changed

Lines changed: 29 additions & 11 deletions

File tree

web/app/[locale]/(pages)/[...slug]/page.tsx

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import { getLocale } from 'next-intl/server'
88
import { decodeSlugs } from '@/lib/helpers/getFullUrl'
99
import { Flags } from '@/sanity/helpers/datasetHelpers'
1010
import { 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'
1213
import { constructSanityMetadata, getPage } from '@/sanity/pages/utils'
1314
import { menuQuery as globalMenuQuery } from '@/sanity/queries/menu'
1415
import {
@@ -23,18 +24,23 @@ type Props = {
2324
params: Promise<{ slug: string[]; locale: string }>
2425
searchParams: Promise<{ [key: string]: string | string[] | undefined }>
2526
}
27+
2628
const MagazinePage = dynamic(() => import('@/templates/magazine/MagazinePage'))
2729
const EventPage = dynamic(() => import('@/templates/event/Event'))
2830
const NewsPage = dynamic(() => import('@/templates/news/News'))
2931
const TopicPage = dynamic(() => import('@/templates/topic/TopicPage'))
3032
const MagazineRoom = dynamic(() => import('@/templates/magazine/Magazineroom'))
3133

34+
const getSanityFetch = (isDraftMode: boolean) =>
35+
isDraftMode || !IS_FETCH_OPTIMIZED ? routeSanityFetch : optimizedFetch
36+
3237
export 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

7783
export 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

web/app/[locale]/layout.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import Script from 'next/script'
77
import { NextIntlClientProvider } from 'next-intl'
88
import { getLocale, getTranslations } from 'next-intl/server'
99
import { PageProvider } from '@/contexts/pageContext'
10+
import { getValidLanguagesLocales } from '@/languageConfig'
1011
import { getLocaleFromIso, getNameFromIso } from '@/sanity/helpers/localization'
1112
import { dataset } from '@/sanity/lib/api'
1213
import { IS_FETCH_OPTIMIZED, routeSanityFetch } from '@/sanity/lib/fetch'
@@ -33,6 +34,12 @@ const equinor = localFont({
3334

3435
//the [locale] segment corresponds to the locale (iso format), not the prefix(/no).
3536

37+
export const instant = false
38+
39+
export function generateStaticParams() {
40+
return getValidLanguagesLocales().map(locale => ({ locale }))
41+
}
42+
3643
export default async function LocaleLayout({
3744
children,
3845
}: LayoutProps<'/[locale]'>) {

web/sanity/pages/utils.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { Metadata } from 'next'
22
import { type QueryParams, toPlainText } from 'next-sanity'
3+
import type { DefinedFetchType } from 'next-sanity/live'
34
import {
45
defaultLanguage,
56
domain,
@@ -175,6 +176,7 @@ type Params = {
175176
slug?: string | string[]
176177
locale: string
177178
tags?: string[]
179+
fetch?: DefinedFetchType
178180
searchParams?: {
179181
[key: string]: string[] | string | undefined
180182
}
@@ -196,7 +198,7 @@ function languagePrefixedSlug(
196198
}
197199

198200
export async function getPage(params: Params) {
199-
const { slug, locale, searchParams } = params
201+
const { slug, locale, searchParams, fetch = routeSanityFetch } = params
200202
const tagParam = searchParams?.tag
201203
const tag =
202204
typeof tagParam === 'string'
@@ -208,7 +210,7 @@ export async function getPage(params: Params) {
208210
if (slug?.[0]?.includes('preview')) {
209211
const id = slug[1]
210212
if (id) {
211-
const { data: draftInfo }: { data: any } = await routeSanityFetch({
213+
const { data: draftInfo }: { data: any } = await fetch({
212214
query: pageInfoById,
213215
params: {
214216
id,
@@ -217,7 +219,7 @@ export async function getPage(params: Params) {
217219
})
218220

219221
if (draftInfo?.lang) {
220-
const { data } = await routeSanityFetch({
222+
const { data } = await fetch({
221223
query: contentQueryById,
222224
params: {
223225
id,
@@ -232,7 +234,7 @@ export async function getPage(params: Params) {
232234
const { query: pageQuery, queryParams: pageQueryParams } =
233235
await getQueryFromSlug(slug, locale)
234236

235-
const { data }: { data: any } = await routeSanityFetch({
237+
const { data }: { data: any } = await fetch({
236238
query: pageQuery,
237239
tags: [`sanity:page:${Array.isArray(slug) ? slug?.join('/') : slug}`],
238240
params: { ...pageQueryParams },
@@ -243,7 +245,7 @@ export async function getPage(params: Params) {
243245

244246
let magazineArticles = null
245247
if (pageData?.template === 'magazineIndex') {
246-
const { data: articles } = await routeSanityFetch({
248+
const { data: articles } = await fetch({
247249
query:
248250
tag && tag !== 'all'
249251
? getMagazineArticlesByTag(false, false)

0 commit comments

Comments
 (0)