diff --git a/app/[lang]/(live)/(protected)/my-pages/overview/page.tsx b/app/[lang]/(live)/(protected)/my-pages/overview/page.tsx index 3064a0350..d467e7be7 100644 --- a/app/[lang]/(live)/(protected)/my-pages/overview/page.tsx +++ b/app/[lang]/(live)/(protected)/my-pages/overview/page.tsx @@ -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) { const user = await serverClient().user.get() +<<<<<<< HEAD +======= + const response = await request( + 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 ( diff --git a/lib/graphql/Fragments/MyPages/AccountPage.graphql b/lib/graphql/Fragments/MyPages/AccountPage.graphql new file mode 100644 index 000000000..bf7e68996 --- /dev/null +++ b/lib/graphql/Fragments/MyPages/AccountPage.graphql @@ -0,0 +1,4 @@ +fragment AccountPage on AccountPage { + title + url +} diff --git a/lib/graphql/Fragments/MyPages/AccountPageContentDynamicContent.graphql b/lib/graphql/Fragments/MyPages/AccountPageContentDynamicContent.graphql new file mode 100644 index 000000000..d108b6e19 --- /dev/null +++ b/lib/graphql/Fragments/MyPages/AccountPageContentDynamicContent.graphql @@ -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 + } + } + } + } + } +} diff --git a/lib/graphql/Fragments/MyPages/AccountPageContentShortcuts.graphql b/lib/graphql/Fragments/MyPages/AccountPageContentShortcuts.graphql new file mode 100644 index 000000000..4e0cf2f48 --- /dev/null +++ b/lib/graphql/Fragments/MyPages/AccountPageContentShortcuts.graphql @@ -0,0 +1,5 @@ +fragment AccountPageContentShortcuts on AccountPageContentShortcuts { + shortcuts { + title + } +} diff --git a/lib/graphql/Fragments/MyPages/LoyaltyPage.graphql b/lib/graphql/Fragments/MyPages/LoyaltyPage.graphql new file mode 100644 index 000000000..0eb29b916 --- /dev/null +++ b/lib/graphql/Fragments/MyPages/LoyaltyPage.graphql @@ -0,0 +1,4 @@ +fragment LoyaltyPage on LoyaltyPage { + title + url +} diff --git a/lib/graphql/Query/AccountPage.graphql b/lib/graphql/Query/AccountPage.graphql new file mode 100644 index 000000000..5b18fbfa0 --- /dev/null +++ b/lib/graphql/Query/AccountPage.graphql @@ -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 + } + } + } +} diff --git a/types/requests/myPages/accountpage.ts b/types/requests/myPages/accountpage.ts new file mode 100644 index 000000000..abfcca28b --- /dev/null +++ b/types/requests/myPages/accountpage.ts @@ -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 +} + +export type Shortcuts = { + title: string + preamble: string + shortcuts: Shortcut[] +} + +export type DynamicContent = { + component: string + title: string + link: { linkConnection: Edges; link_text: string } +} + +export type AccountPageContentItem = {} + +export type AccountPage = { + url: string + title: string + content: AccountPageContentItem[] +} + +export type GetAccountPageData = { + all_account_page: AllRequestResponse +}