Merged in feature/refactor-lang (pull request #387)
feat: SW-238 Avoid prop drilling of lang Approved-by: Michael Zetterberg
This commit is contained in:
@@ -1,11 +1,18 @@
|
||||
import { serverClient } from "@/lib/trpc/server"
|
||||
|
||||
import LanguageSwitcher from "@/components/Current/Header/LanguageSwitcher"
|
||||
import { setLang } from "@/i18n/serverContext"
|
||||
|
||||
import { LangParams, PageArgs } from "@/types/params"
|
||||
|
||||
export default async function LanguageSwitcherRoute({
|
||||
params,
|
||||
}: PageArgs<LangParams>) {
|
||||
setLang(params.lang)
|
||||
|
||||
export default async function LanguageSwitcherRoute() {
|
||||
const data = await serverClient().contentstack.languageSwitcher.get()
|
||||
if (!data) {
|
||||
return null
|
||||
}
|
||||
return <LanguageSwitcher urls={data.urls} lang={data.lang} />
|
||||
return <LanguageSwitcher urls={data.urls} />
|
||||
}
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
"use client"
|
||||
|
||||
import { useParams } from "next/navigation"
|
||||
|
||||
import { baseUrls } from "@/constants/routes/baseUrls"
|
||||
|
||||
import LanguageSwitcher from "@/components/Current/Header/LanguageSwitcher"
|
||||
|
||||
import { LangParams } from "@/types/params"
|
||||
|
||||
export default function Error() {
|
||||
const params = useParams<LangParams>()
|
||||
return <LanguageSwitcher urls={baseUrls} lang={params.lang} />
|
||||
return <LanguageSwitcher urls={baseUrls} />
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
import { serverClient } from "@/lib/trpc/server"
|
||||
|
||||
import MyPagesMobileDropdown from "@/components/Current/Header/MyPagesMobileDropdown"
|
||||
import { setLang } from "@/i18n/serverContext"
|
||||
|
||||
import { LangParams, PageArgs } from "@/types/params"
|
||||
|
||||
export default async function MyPagesMobileDropdownPage({
|
||||
params,
|
||||
}: PageArgs<LangParams>) {
|
||||
setLang(params.lang)
|
||||
|
||||
const navigation = await serverClient().contentstack.myPages.navigation.get()
|
||||
if (!navigation) {
|
||||
return null
|
||||
}
|
||||
return <MyPagesMobileDropdown navigation={navigation} lang={params.lang} />
|
||||
return <MyPagesMobileDropdown navigation={navigation} />
|
||||
}
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
"use client"
|
||||
|
||||
import { useParams } from "next/navigation"
|
||||
|
||||
import MyPagesMobileDropdown from "@/components/Current/Header/MyPagesMobileDropdown"
|
||||
|
||||
import { LangParams } from "@/types/params"
|
||||
|
||||
export default function Error() {
|
||||
const params = useParams<LangParams>()
|
||||
return <MyPagesMobileDropdown navigation={null} lang={params.lang} />
|
||||
return <MyPagesMobileDropdown navigation={null} />
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import { request } from "@/lib/graphql/request"
|
||||
|
||||
import ContentPage from "@/components/Current/ContentPage"
|
||||
import Tracking from "@/components/Current/Tracking"
|
||||
import { getLang, setLang } from "@/i18n/serverContext"
|
||||
|
||||
import type { LangParams, PageArgs, UriParams } from "@/types/params"
|
||||
import type { GetCurrentBlockPageData } from "@/types/requests/currentBlockPage"
|
||||
@@ -15,6 +16,8 @@ export default async function CurrentContentPage({
|
||||
params,
|
||||
searchParams,
|
||||
}: PageArgs<LangParams, UriParams>) {
|
||||
setLang(params.lang)
|
||||
|
||||
try {
|
||||
if (!searchParams.uri) {
|
||||
throw new Error("Bad URI")
|
||||
@@ -23,10 +26,10 @@ export default async function CurrentContentPage({
|
||||
const response = await request<GetCurrentBlockPageData>(
|
||||
GetCurrentBlockPage,
|
||||
{
|
||||
locale: params.lang,
|
||||
locale: getLang(),
|
||||
url: searchParams.uri,
|
||||
},
|
||||
{ tags: [`${searchParams.uri}-${params.lang}`] }
|
||||
{ tags: [`${searchParams.uri}-${getLang()}`] }
|
||||
)
|
||||
|
||||
if (!response.data?.all_current_blocks_page?.total) {
|
||||
@@ -46,7 +49,7 @@ export default async function CurrentContentPage({
|
||||
const pageData = response.data.all_current_blocks_page.items[0]
|
||||
|
||||
const trackingData = {
|
||||
lang: params.lang,
|
||||
lang: getLang(),
|
||||
publishedDate: pageData.system.updated_at,
|
||||
createdDate: pageData.system.created_at,
|
||||
pageId: pageData.system.uid,
|
||||
|
||||
@@ -10,6 +10,7 @@ import LangPopup from "@/components/Current/LangPopup"
|
||||
import SkipToMainContent from "@/components/SkipToMainContent"
|
||||
import { getIntl } from "@/i18n"
|
||||
import ServerIntlProvider from "@/i18n/Provider"
|
||||
import { getLang, setLang } from "@/i18n/serverContext"
|
||||
|
||||
import type { Metadata } from "next"
|
||||
|
||||
@@ -31,9 +32,11 @@ export default async function RootLayout({
|
||||
myPagesMobileDropdown: React.ReactNode
|
||||
}
|
||||
>) {
|
||||
setLang(params.lang)
|
||||
const { defaultLocale, locale, messages } = await getIntl()
|
||||
|
||||
return (
|
||||
<html lang={params.lang}>
|
||||
<html lang={getLang()}>
|
||||
<head>
|
||||
{/* eslint-disable-next-line @next/next/no-css-tags */}
|
||||
<link rel="stylesheet" href="/_static/css/core.css" />
|
||||
@@ -44,7 +47,7 @@ export default async function RootLayout({
|
||||
strategy="beforeInteractive"
|
||||
data-blockingmode="auto"
|
||||
data-cbid="6d539de8-3e67-4f0f-a0df-8cef9070f712"
|
||||
data-culture={params.lang}
|
||||
data-culture={getLang()}
|
||||
id="Cookiebot"
|
||||
src="https://consent.cookiebot.com/uc.js"
|
||||
/>
|
||||
@@ -60,16 +63,15 @@ export default async function RootLayout({
|
||||
/>
|
||||
</head>
|
||||
<body className="theme-00Corecolours theme-X0Oldcorecolours">
|
||||
<LangPopup lang={params.lang} />
|
||||
<LangPopup />
|
||||
<SkipToMainContent />
|
||||
<ServerIntlProvider intl={{ defaultLocale, locale, messages }}>
|
||||
<Header
|
||||
lang={params.lang}
|
||||
myPagesMobileDropdown={myPagesMobileDropdown}
|
||||
languageSwitcher={languageSwitcher}
|
||||
/>
|
||||
{children}
|
||||
<Footer lang={params.lang} />
|
||||
<Footer />
|
||||
</ServerIntlProvider>
|
||||
<Script id="page-tracking">{`
|
||||
typeof _satellite !== "undefined" && _satellite.pageBottom();
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
"use client"
|
||||
|
||||
import { useParams } from "next/navigation"
|
||||
|
||||
import NotFound from "@/components/Current/NotFound"
|
||||
|
||||
import { LangParams } from "@/types/params"
|
||||
|
||||
export default function NotFoundPage() {
|
||||
const { lang } = useParams<LangParams>()
|
||||
|
||||
return <NotFound lang={lang} />
|
||||
return <NotFound />
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user