fix: return baseUrls if no uid is given to language switcher query
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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} />
|
||||
}
|
||||
@@ -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} />
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
"use client"
|
||||
|
||||
export default function Error() {
|
||||
// Don't return any header if error
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
"use client"
|
||||
|
||||
export default function Error({ error }: any) {
|
||||
// Don't return any content if error
|
||||
return null
|
||||
}
|
||||
@@ -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} />
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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} />
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
export default function DefaultLanguageSwitcher() {
|
||||
return null
|
||||
}
|
||||
@@ -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} />
|
||||
}
|
||||
|
||||
@@ -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} />
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
sans-serif;
|
||||
}
|
||||
|
||||
.languageSwitcher {
|
||||
.toggle {
|
||||
display: flex;
|
||||
color: #fff;
|
||||
padding: 3px 15px;
|
||||
|
||||
@@ -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} />
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
line-height: var(--typography-Script-2-lineHeight);
|
||||
letter-spacing: 0.48px;
|
||||
padding: var(--Spacing-x1);
|
||||
margin: 0;
|
||||
transform: rotate(-3deg);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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]
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user