feat: add Account Page query

This commit is contained in:
Arvid Norlin
2024-04-18 09:31:05 +02:00
parent cb1ab4415a
commit 1543065d27
7 changed files with 110 additions and 0 deletions

View File

@@ -1,5 +1,7 @@
import { _ } from "@/lib/translation"
import { serverClient } from "@/lib/trpc/server"
import { request } from "@/lib/graphql/request"
import { GetAccountPage } from "@/lib/graphql/Query/AccountPage.graphql"
import MaxWidth from "@/components/MaxWidth"
import Overview from "@/components/MyPages/Blocks/Overview"
@@ -8,10 +10,32 @@ import Shortcuts from "@/components/MyPages/Blocks/Shortcuts"
import styles from "./page.module.css"
import { GetAccountPageData } from "@/types/requests/myPages/accountpage"
import type { LangParams, PageArgs } from "@/types/params"
export default async function MyPageOverview({ params }: PageArgs<LangParams>) {
const user = await serverClient().user.get()
<<<<<<< HEAD
=======
const response = await request<GetAccountPageData>(
GetAccountPage,
{
locale: params.lang,
url: "/my-pages/overview",
},
{
tags: [`'/my-pages/overview',-en`],
}
)
if (!response.data?.all_account_page?.total) {
console.log("#### DATA ####")
console.log(response.data)
throw new Error("Not found")
}
const pageData = response.data.all_account_page.items[0]
>>>>>>> 13b5550 (feat: add Account Page query)
return (
<MaxWidth className={styles.blocks} tag="main">

View File

@@ -0,0 +1,4 @@
fragment AccountPage on AccountPage {
title
url
}

View File

@@ -0,0 +1,20 @@
#import "./AccountPage.graphql"
#import "./LoyaltyPage.graphql"
fragment AccountPageContentDynamicContent on AccountPageContentDynamicContent {
dynamic_content {
component
title
link {
link_text
linkConnection {
edges {
node {
...LoyaltyPage
...AccountPage
}
}
}
}
}
}

View File

@@ -0,0 +1,5 @@
fragment AccountPageContentShortcuts on AccountPageContentShortcuts {
shortcuts {
title
}
}

View File

@@ -0,0 +1,4 @@
fragment LoyaltyPage on LoyaltyPage {
title
url
}

View File

@@ -0,0 +1,16 @@
#import "../Fragments/MyPages/AccountPageContentDynamicContent.graphql"
#import "../Fragments/MyPages/AccountPageContentShortcuts.graphql"
query GetAccountPage($locale: String!, $url: String!) {
all_account_page(limit: 1, locale: $locale, where: { url: $url }) {
items {
url
title
content {
__typename
...AccountPageContentDynamicContent
...AccountPageContentShortcuts
}
}
}
}

View File

@@ -0,0 +1,37 @@
import { AllRequestResponse } from "../utils/all"
import type { TypenameInterface } from "../utils/typename"
import type { Edges } from "../utils/edges"
export type PageLink = {
url: string
title: string
}
export type Shortcut = {
text: string
linkConnection: Edges<PageLink>
}
export type Shortcuts = {
title: string
preamble: string
shortcuts: Shortcut[]
}
export type DynamicContent = {
component: string
title: string
link: { linkConnection: Edges<PageLink>; link_text: string }
}
export type AccountPageContentItem = {}
export type AccountPage = {
url: string
title: string
content: AccountPageContentItem[]
}
export type GetAccountPageData = {
all_account_page: AllRequestResponse<AccountPage>
}