fix: return baseUrls if no uid is given to language switcher query

This commit is contained in:
Christel Westerberg
2024-06-11 16:53:42 +02:00
parent e622be7c86
commit 16ee1bf493
22 changed files with 69 additions and 88 deletions

View File

@@ -2,9 +2,9 @@
import { useParams } from "next/navigation"
import LanguageSwitcher from "@/components/Current/Header/LanguageSwitcher"
import { baseUrls } from "@/constants/routes/baseUrls"
import { baseUrls } from "../../_constants"
import LanguageSwitcher from "@/components/Current/Header/LanguageSwitcher"
import { LangParams } from "@/types/params"

View File

@@ -0,0 +1,9 @@
import { serverClient } from "@/lib/trpc/server"
import LanguageSwitcher from "@/components/Current/Header/LanguageSwitcher"
export default async function LanguageSwitcherRoute() {
const data = await serverClient().contentstack.languageSwitcher.get()
return <LanguageSwitcher urls={data.urls} lang={data.lang} />
}

View File

@@ -1,13 +0,0 @@
import { serverClient } from "@/lib/trpc/server"
import LanguageSwitcher from "@/components/Current/Header/LanguageSwitcher"
import { LangParams, PageArgs } from "@/types/params"
export default async function LanguageSwitcherRoute({
params,
}: PageArgs<LangParams>) {
const urls = await serverClient().contentstack.config.languageSwitcher()
return <LanguageSwitcher urls={urls} lang={params.lang} />
}

View File

@@ -1,6 +1,5 @@
"use client"
export default function Error() {
// Don't return any header if error
return null
}

View File

@@ -1,11 +1,11 @@
import { baseUrls } from "@/constants/routes/baseUrls"
import Header from "@/components/Current/Header"
import LanguageSwitcher from "@/components/Current/Header/LanguageSwitcher"
import { baseUrls } from "./_constants"
import { LangParams, PageArgs } from "@/types/params"
export async function LanguageSwitcherRoute({ params }: PageArgs<LangParams>) {
export default async function HeaderPage({ params }: PageArgs<LangParams>) {
return (
<Header
lang={params.lang}

View File

@@ -1,6 +0,0 @@
"use client"
export default function Error({ error }: any) {
// Don't return any content if error
return null
}

View File

@@ -1,14 +0,0 @@
import { serverClient } from "@/lib/trpc/server"
import Desktop from "@/components/Current/Header/LanguageSwitcher/Desktop"
import Mobile from "@/components/Current/Header/LanguageSwitcher/Mobile"
export default async function LanguageSwitcher() {
const data = await serverClient().contentstack.languageSwitcher.get()
return (
<>
<Desktop currentLanguage={data.lang} urls={data.urls} />
<Mobile currentLanguage={data.lang} urls={data.urls} />
</>
)
}

View File

@@ -7,7 +7,6 @@ import TrpcProvider from "@/lib/trpc/Provider"
import AdobeScript from "@/components/Current/AdobeScript"
import Footer from "@/components/Current/Footer"
import Header from "@/components/Current/Header"
import VwoScript from "@/components/Current/VwoScript"
import { getIntl } from "@/i18n"
import ServerIntlProvider from "@/i18n/Provider"

View File

@@ -1,14 +1,9 @@
import { serverClient } from "@/lib/trpc/server"
import Desktop from "@/components/Current/Header/LanguageSwitcher/Desktop"
import Mobile from "@/components/Current/Header/LanguageSwitcher/Mobile"
import LanguageSwitcher from "@/components/Current/Header/LanguageSwitcher"
export default async function LanguageSwitcher() {
export default async function LanguageSwitcherRoute() {
const data = await serverClient().contentstack.languageSwitcher.get()
return (
<>
<Desktop currentLanguage={data.lang} urls={data.urls} />
<Mobile currentLanguage={data.lang} urls={data.urls} />
</>
)
return <LanguageSwitcher urls={data.urls} lang={data.lang} />
}

View File

@@ -1,3 +0,0 @@
export default function DefaultLanguageSwitcher() {
return null
}

View File

@@ -1,6 +1,14 @@
"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() {
// Don't return any content if error
return null
const params = useParams<LangParams>()
return <LanguageSwitcher urls={baseUrls} lang={params.lang} />
}

View File

@@ -1,12 +1,13 @@
import { headers } from "next/headers"
"use client"
import { Lang } from "@/constants/languages"
import { useParams } from "next/navigation"
import NotFound from "@/components/Current/NotFound"
import { LangParams } from "@/types/params"
export default function NotFoundPage() {
const headersList = headers()
const lang = headersList.get("x-sh-language") as Lang
const { lang } = useParams<LangParams>()
return <NotFound lang={lang} />
}

View File

@@ -12,7 +12,7 @@
sans-serif;
}
.languageSwitcher {
.toggle {
display: flex;
color: #fff;
padding: 3px 15px;

View File

@@ -1,8 +1,6 @@
import Desktop from "./Desktop"
import Mobile from "./Mobile"
import styles from "./languageSwitcher.module.css"
import { LangParams } from "@/types/params"
import { LanguageSwitcherData } from "@/types/requests/languageSwitcher"
@@ -14,12 +12,8 @@ export default function LanguageSwitcher({
}: LanguageSwitcherProps) {
return (
<>
<section className={styles.desktop}>
<Desktop currentLanguage={lang} urls={urls} />
</section>
<section className={styles.mobile}>
<Mobile currentLanguage={lang} urls={urls} />
</section>
<Desktop currentLanguage={lang} urls={urls} />
<Mobile currentLanguage={lang} urls={urls} />
</>
)
}

View File

@@ -49,6 +49,7 @@
line-height: var(--typography-Script-2-lineHeight);
letter-spacing: 0.48px;
padding: var(--Spacing-x1);
margin: 0;
transform: rotate(-3deg);
}

View File

@@ -1,23 +1,35 @@
query GetDaDeEnUrlsCurrentBlocksPage($uid: String!) {
de: current_blocks_page(uid: $uid, locale: "de") {
url: original_url
de: all_current_blocks_page(where: { uid: $uid }, locale: "de") {
items {
url
}
}
en: current_blocks_page(uid: $uid, locale: "en") {
url: original_url
en: all_current_blocks_page(where: { uid: $uid }, locale: "en") {
items {
url
}
}
da: current_blocks_page(uid: $uid, locale: "da") {
url: original_url
da: all_current_blocks_page(where: { uid: $uid }, locale: "da") {
items {
url
}
}
}
query GetFiNoSvUrlsCurrentBlocksPage($uid: String!) {
fi: current_blocks_page(uid: $uid, locale: "fi") {
url: original_url
fi: all_current_blocks_page(where: { uid: $uid }, locale: "fi") {
items {
url
}
}
no: current_blocks_page(uid: $uid, locale: "no") {
url: original_url
no: all_current_blocks_page(where: { uid: $uid }, locale: "no") {
items {
url
}
}
sv: current_blocks_page(uid: $uid, locale: "sv") {
url: original_url
sv: all_current_blocks_page(where: { uid: $uid }, locale: "sv") {
items {
url
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,5 @@
import { Lang } from "@/constants/languages"
import { baseUrls } from "@/constants/routes/baseUrls"
import { batchRequest } from "@/lib/graphql/batchRequest"
import {
GetDaDeEnUrlsAccountPage,
@@ -13,7 +14,7 @@ import {
GetFiNoSvUrlsLoyaltyPage,
} from "@/lib/graphql/Query/LoyaltyPage.graphql"
import { internalServerError } from "@/server/errors/trpc"
import { contentstackExtendedProcedureUID, router } from "@/server/trpc"
import { publicProcedure, router } from "@/server/trpc"
import { generateTag } from "@/utils/generateTag"
@@ -91,12 +92,14 @@ async function getLanguageSwitcher(options: LanguageSwitcherVariables) {
}
export const languageSwitcherQueryRouter = router({
get: contentstackExtendedProcedureUID.query(async ({ ctx }) => {
get: publicProcedure.query(async ({ ctx }) => {
if (!ctx.uid || !ctx.lang) {
return { lang: ctx.lang, urls: baseUrls }
}
const res = await getLanguageSwitcher({
contentType: ctx.contentType!,
uid: ctx.uid,
})
const urls = Object.keys(res.data).reduce<LanguageSwitcherData>(
(acc, key) => {
const item = res.data[key as Lang]?.items[0]

View File

@@ -2,11 +2,7 @@ import { initTRPC } from "@trpc/server"
import { env } from "@/env/server"
import {
badRequestError,
sessionExpiredError,
unauthorizedError,
} from "./errors/trpc"
import { badRequestError, sessionExpiredError } from "./errors/trpc"
import { transformer } from "./transformer"
import type { Meta } from "@/types/trpc/meta"