chore: change account page breadcrumbs to same structure as loyalty page

This commit is contained in:
Matilda Landström
2024-05-27 11:54:56 +02:00
parent ed2fe5b30e
commit ca5120d3e3
6 changed files with 92 additions and 76 deletions

View File

@@ -1,18 +1,20 @@
fragment AccountPageBreadcrumbs on AccountPage { fragment AccountPageBreadcrumbs on AccountPage {
breadcrumbs { web {
title breadcrumbs {
parentsConnection { title
edges { parentsConnection {
node { edges {
... on AccountPage { node {
breadcrumbs { ... on AccountPage {
title breadcrumbs {
title
}
system {
locale
uid
}
url
} }
system {
locale
uid
}
url
} }
} }
} }

View File

@@ -1,13 +1,19 @@
#import "./System.graphql" #import "./System.graphql"
fragment AccountPageBreadcrumbsRefs on AccountPage { fragment AccountPageBreadcrumbsRefs on AccountPage {
breadcrumbs { web {
parentsConnection { breadcrumbs {
edges { title
node { parentsConnection {
... on AccountPage { edges {
system { node {
...System ... on AccountPage {
breadcrumbs {
title
}
system {
...System
}
} }
} }
} }

View File

@@ -6,18 +6,20 @@ export const validateBreadcrumbsRefsConstenstackSchema = z.object({
all_account_page: z.object({ all_account_page: z.object({
items: z.array( items: z.array(
z.object({ z.object({
breadcrumbs: z.object({ web: z.object({
parentsConnection: z.object({ breadcrumbs: z.object({
edges: z.array( parentsConnection: z.object({
z.object({ edges: z.array(
node: z.object({ z.object({
system: z.object({ node: z.object({
content_type_uid: z.string(), system: z.object({
uid: z.string(), content_type_uid: z.string(),
uid: z.string(),
}),
}), }),
}), })
}) ),
), }),
}), }),
}), }),
system: z.object({ system: z.object({
@@ -33,23 +35,25 @@ export const validateBreadcrumbsContenstackSchema = z.object({
all_account_page: z.object({ all_account_page: z.object({
items: z.array( items: z.array(
z.object({ z.object({
breadcrumbs: z.object({ web: z.object({
title: z.string(), breadcrumbs: z.object({
parentsConnection: z.object({ title: z.string(),
edges: z.array( parentsConnection: z.object({
z.object({ edges: z.array(
node: z.object({ z.object({
breadcrumbs: z.object({ node: z.object({
title: z.string(), breadcrumbs: z.object({
title: z.string(),
}),
system: z.object({
locale: z.nativeEnum(Lang),
uid: z.string(),
}),
url: z.string(),
}), }),
system: z.object({ })
locale: z.nativeEnum(Lang), ),
uid: z.string(), }),
}),
url: z.string(),
}),
})
),
}), }),
}), }),
system: z.object({ system: z.object({

View File

@@ -49,11 +49,11 @@ export const breadcrumbsQueryRouter = router({
}, },
} }
) )
console.log([generateRefsResponseTag(ctx.lang, ctx.pathname, affix)])
if (!refsResponse.data) { if (!refsResponse.data) {
throw notFound(refsResponse) throw notFound(refsResponse)
} }
console.log(refsResponse)
const validatedRefsData = const validatedRefsData =
validateBreadcrumbsRefsConstenstackSchema.safeParse(refsResponse.data) validateBreadcrumbsRefsConstenstackSchema.safeParse(refsResponse.data)
if (!validatedRefsData.success) { if (!validatedRefsData.success) {
@@ -82,7 +82,7 @@ export const breadcrumbsQueryRouter = router({
} }
const parentBreadcrumbs = const parentBreadcrumbs =
validatedBreadcrumbsData.data.all_account_page.items[0].breadcrumbs.parentsConnection.edges.map( validatedBreadcrumbsData.data.all_account_page.items[0].web.breadcrumbs.parentsConnection.edges.map(
(breadcrumb) => { (breadcrumb) => {
return { return {
href: removeMultipleSlashes( href: removeMultipleSlashes(
@@ -97,11 +97,11 @@ export const breadcrumbsQueryRouter = router({
const pageBreadcrumb = const pageBreadcrumb =
validatedBreadcrumbsData.data.all_account_page.items.map((breadcrumb) => { validatedBreadcrumbsData.data.all_account_page.items.map((breadcrumb) => {
return { return {
title: breadcrumb.breadcrumbs.title, title: breadcrumb.web.breadcrumbs.title,
uid: breadcrumb.system.uid, uid: breadcrumb.system.uid,
} }
}) })
console.log(pageBreadcrumb)
const breadcrumbs = [ const breadcrumbs = [
homeBreadcrumbs[ctx.lang], homeBreadcrumbs[ctx.lang],
parentBreadcrumbs, parentBreadcrumbs,
@@ -126,7 +126,7 @@ export const breadcrumbsQueryRouter = router({
} }
) )
console.log(ctx.pathname) console.log(ctx.pathname)
console.log(refsResponse.data.all_loyalty_page) console.log(refsResponse)
if (!refsResponse.data) { if (!refsResponse.data) {
throw notFound(refsResponse) throw notFound(refsResponse)
} }
@@ -161,7 +161,7 @@ export const breadcrumbsQueryRouter = router({
if (!validatedBreadcrumbsData.success) { if (!validatedBreadcrumbsData.success) {
throw internalServerError(validatedBreadcrumbsData.error) throw internalServerError(validatedBreadcrumbsData.error)
} }
console.log(validatedBreadcrumbsData)
const parentBreadcrumbs = const parentBreadcrumbs =
validatedBreadcrumbsData.data.all_loyalty_page.items[0].web.breadcrumbs.parentsConnection.edges.map( validatedBreadcrumbsData.data.all_loyalty_page.items[0].web.breadcrumbs.parentsConnection.edges.map(
(breadcrumb) => { (breadcrumb) => {
@@ -182,18 +182,18 @@ export const breadcrumbsQueryRouter = router({
uid: breadcrumb.system.uid, uid: breadcrumb.system.uid,
} }
}) })
const breadcrumbs = [ const breadcrumbs = [
homeBreadcrumbs[ctx.lang], homeBreadcrumbs[ctx.lang],
parentBreadcrumbs, parentBreadcrumbs,
pageBreadcrumb, pageBreadcrumb,
].flat() ].flat()
console.log(breadcrumbs)
const validatedBreadcrumbs = getBreadcrumbsSchema.safeParse(breadcrumbs) const validatedBreadcrumbs = getBreadcrumbsSchema.safeParse(breadcrumbs)
if (!validatedBreadcrumbs.success) { if (!validatedBreadcrumbs.success) {
throw internalServerError(validatedBreadcrumbs.error) throw internalServerError(validatedBreadcrumbs.error)
} }
console.log(validatedBreadcrumbs.data)
return validatedBreadcrumbs.data return validatedBreadcrumbs.data
}), }),
}) })

View File

@@ -10,9 +10,9 @@ import type { NodeRefs } from "@/types/requests/utils/refs"
export function getConnections(refs: GetAccountPageBreadcrumbsRefsData) { export function getConnections(refs: GetAccountPageBreadcrumbsRefsData) {
const connections: Edges<NodeRefs>[] = [] const connections: Edges<NodeRefs>[] = []
refs.all_account_page.items.forEach((ref) => { refs.all_account_page.items.forEach((ref) => {
console.log(ref) console.log(ref.web.breadcrumbs)
console.log(ref.breadcrumbs.parentsConnection) console.log(ref.web.breadcrumbs.parentsConnection)
connections.push(ref.breadcrumbs.parentsConnection) connections.push(ref.web.breadcrumbs.parentsConnection)
}) })
return connections return connections

View File

@@ -5,21 +5,23 @@ import type { AllRequestResponse } from "../utils/all"
import type { Edges } from "../utils/edges" import type { Edges } from "../utils/edges"
interface AccountPageBreadcrumbs { interface AccountPageBreadcrumbs {
breadcrumbs: { web: {
title: string breadcrumbs: {
parentsConnection: Edges<{ title: string
breadcrumbs: { parentsConnection: Edges<{
title: string breadcrumbs: {
} title: string
system: { }
locale: Lang system: {
uid: string locale: Lang
} uid: string
url: string }
}> url: string
} }>
system: { }
uid: string system: {
uid: string
}
} }
} }
interface LoyaltyPageBreadcrumbs { interface LoyaltyPageBreadcrumbs {
@@ -58,8 +60,10 @@ export interface GetLoyaltyPageBreadcrumbsData {
} }
interface AccountPageBreadcrumbRefs extends System { interface AccountPageBreadcrumbRefs extends System {
breadcrumbs: { web: {
parentsConnection: Edges<System> breadcrumbs: {
parentsConnection: Edges<System>
}
} }
} }