fix: zod validation
This commit is contained in:
@@ -16,7 +16,7 @@ export default async function Header({
|
|||||||
lang,
|
lang,
|
||||||
languageSwitcher,
|
languageSwitcher,
|
||||||
}: LangParams & { languageSwitcher: React.ReactNode }) {
|
}: LangParams & { languageSwitcher: React.ReactNode }) {
|
||||||
const data = await serverClient().contentstack.config.header({ lang })
|
const data = await serverClient().contentstack.config.header()
|
||||||
const session = await auth()
|
const session = await auth()
|
||||||
|
|
||||||
const homeHref = homeHrefs[env.NODE_ENV][lang]
|
const homeHref = homeHrefs[env.NODE_ENV][lang]
|
||||||
|
|||||||
@@ -190,10 +190,22 @@ export type AccountPageRefsDataRaw = z.infer<
|
|||||||
>
|
>
|
||||||
|
|
||||||
export const validateLanguageSwitcherData = z.object({
|
export const validateLanguageSwitcherData = z.object({
|
||||||
en: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
en: z
|
||||||
da: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
de: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
.nullable(),
|
||||||
fi: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
da: z
|
||||||
sv: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
no: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
.nullable(),
|
||||||
|
de: z
|
||||||
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
|
.nullable(),
|
||||||
|
fi: z
|
||||||
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
|
.nullable(),
|
||||||
|
sv: z
|
||||||
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
|
.nullable(),
|
||||||
|
no: z
|
||||||
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
|
.nullable(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
import z from "zod"
|
|
||||||
|
|
||||||
import { Lang } from "@/constants/languages"
|
|
||||||
|
|
||||||
export const headerInput = z
|
|
||||||
.object({
|
|
||||||
lang: z.nativeEnum(Lang),
|
|
||||||
})
|
|
||||||
.optional()
|
|
||||||
@@ -4,7 +4,6 @@ import { request } from "@/lib/graphql/request"
|
|||||||
import { internalServerError, notFound } from "@/server/errors/trpc"
|
import { internalServerError, notFound } from "@/server/errors/trpc"
|
||||||
import { contentstackProcedure, publicProcedure, router } from "@/server/trpc"
|
import { contentstackProcedure, publicProcedure, router } from "@/server/trpc"
|
||||||
|
|
||||||
import { headerInput } from "./input"
|
|
||||||
import {
|
import {
|
||||||
type ContactConfigData,
|
type ContactConfigData,
|
||||||
HeaderData,
|
HeaderData,
|
||||||
@@ -35,12 +34,11 @@ export const configQueryRouter = router({
|
|||||||
|
|
||||||
return validatedContactConfigConfig.data.all_contact_config.items[0]
|
return validatedContactConfigConfig.data.all_contact_config.items[0]
|
||||||
}),
|
}),
|
||||||
header: publicProcedure.input(headerInput).query(async ({ input, ctx }) => {
|
header: publicProcedure.query(async ({ ctx }) => {
|
||||||
const locale = input?.lang || ctx.lang
|
|
||||||
const response = await request<HeaderDataRaw>(
|
const response = await request<HeaderDataRaw>(
|
||||||
GetCurrentHeader,
|
GetCurrentHeader,
|
||||||
{ locale },
|
{ locale: ctx.lang },
|
||||||
{ next: { tags: [`header-${locale}`] } }
|
{ next: { tags: [`header-${ctx.lang}`] } }
|
||||||
)
|
)
|
||||||
|
|
||||||
if (!response.data) {
|
if (!response.data) {
|
||||||
|
|||||||
@@ -308,10 +308,22 @@ export type LoyaltyPageRefsDataRaw = z.infer<
|
|||||||
>
|
>
|
||||||
|
|
||||||
export const validateLanguageSwitcherData = z.object({
|
export const validateLanguageSwitcherData = z.object({
|
||||||
en: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
en: z
|
||||||
da: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
de: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
.nullable(),
|
||||||
fi: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
da: z
|
||||||
sv: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
no: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
|
.nullable(),
|
||||||
|
de: z
|
||||||
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
|
.nullable(),
|
||||||
|
fi: z
|
||||||
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
|
.nullable(),
|
||||||
|
sv: z
|
||||||
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
|
.nullable(),
|
||||||
|
no: z
|
||||||
|
.object({ url: z.string().optional(), isExternal: z.boolean() })
|
||||||
|
.nullable(),
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user