Merged in fix/mypages-clientside-menu (pull request #1344)

Fix/mypages clientside menu

* feat: move mypages menu to client side

* Merge branch 'master' of bitbucket.org:scandic-swap/web into fix/mypages-clientside-menu

* wip

* wip

* wip

* refactor: reorganize MyPages navigation logic and improve type definitions

* refactor: enhance MyPagesMobileDropdown with loading states and skeletons

* refactor: clean up header component and improve myPagesNavigation query structure

* Merge branch 'master' of bitbucket.org:scandic-swap/web into fix/mypages-clientside-menu


Approved-by: Linus Flood
This commit is contained in:
Joakim Jäderberg
2025-02-17 07:47:33 +00:00
committed by Linus Flood
parent ef1d3ee065
commit 2791f07f67
18 changed files with 334 additions and 251 deletions

View File

@@ -0,0 +1,49 @@
import { TRPCError } from "@trpc/server"
import { z } from "zod"
import { Lang } from "@/constants/languages"
import { safeProtectedProcedure } from "@/server/trpc"
import { getPrimaryLinks } from "./getPrimaryLinks"
import { getSecondaryLinks } from "./getSecondaryLinks"
import type { MyPagesLink } from "./MyPagesLink"
export const myPagesNavigation = safeProtectedProcedure
.input(
z.object({
lang: z.nativeEnum(Lang).optional(),
})
)
.query(
async ({
ctx,
input,
}): Promise<{
primaryLinks: MyPagesLink[]
secondaryLinks: MyPagesLink[]
} | null> => {
if (!ctx.session) {
return null
}
const lang = input.lang || ctx.lang
if (!lang) {
throw new TRPCError({
code: "BAD_REQUEST",
message: "Language must be provided.",
})
}
const [primaryLinks, secondaryLinks] = await Promise.all([
getPrimaryLinks({ lang }),
getSecondaryLinks({ lang }),
])
return {
primaryLinks,
secondaryLinks,
}
}
)