From cfb08fff2c5d5b2249c90784ec0affabea5a2286 Mon Sep 17 00:00:00 2001 From: Chuma McPhoy Date: Wed, 19 Jun 2024 07:57:26 +0200 Subject: [PATCH] feat: add my pages mobile dropdown cmoponent, parallel route, and consume + zustand store --- .../@myPagesMobileDropdown/page.tsx | 10 +++ .../(live)/@header/[...paths]/layout.tsx | 11 ++- app/[lang]/(live)/@header/page.tsx | 2 + .../@myPagesMobileDropdown/page.tsx | 12 ++++ app/[lang]/(live-current)/layout.tsx | 11 ++- components/Current/Header/MainMenu/index.tsx | 28 ++++++-- .../Header/MyPagesMobileDropdown/index.tsx | 69 +++++++++++++++++++ .../my-pages-mobile-dropdown.module.css | 55 +++++++++++++++ components/Current/Header/index.tsx | 6 +- stores/main-menu.ts | 31 +++++++++ types/components/current/header/mainMenu.ts | 1 + 11 files changed, 224 insertions(+), 12 deletions(-) create mode 100644 app/[lang]/(live)/@header/[...paths]/@myPagesMobileDropdown/page.tsx create mode 100644 app/[lang]/(live-current)/@myPagesMobileDropdown/page.tsx create mode 100644 components/Current/Header/MyPagesMobileDropdown/index.tsx create mode 100644 components/Current/Header/MyPagesMobileDropdown/my-pages-mobile-dropdown.module.css create mode 100644 stores/main-menu.ts diff --git a/app/[lang]/(live)/@header/[...paths]/@myPagesMobileDropdown/page.tsx b/app/[lang]/(live)/@header/[...paths]/@myPagesMobileDropdown/page.tsx new file mode 100644 index 000000000..92e3a69b4 --- /dev/null +++ b/app/[lang]/(live)/@header/[...paths]/@myPagesMobileDropdown/page.tsx @@ -0,0 +1,10 @@ +import { logout } from "@/constants/routes/handleAuth" +import { serverClient } from "@/lib/trpc/server" + +import MyPagesMobileDropdown from "@/components/Current/Header/MyPagesMobileDropdown" + +export default async function MyPagesMobileDropdownPage() { + // TODO: Figure out how to pass down props at the paralell route level. + // - POssibly by parsing [...paths] + return +} diff --git a/app/[lang]/(live)/@header/[...paths]/layout.tsx b/app/[lang]/(live)/@header/[...paths]/layout.tsx index 8b88b75e1..73a42092b 100644 --- a/app/[lang]/(live)/@header/[...paths]/layout.tsx +++ b/app/[lang]/(live)/@header/[...paths]/layout.tsx @@ -5,8 +5,15 @@ import { LangParams, PageArgs } from "@/types/params" export default function HeaderLayout({ params, languageSwitcher, + myPagesMobileDropdown, }: PageArgs & { languageSwitcher: React.ReactNode -}) { - return
+} & { myPagesMobileDropdown: React.ReactNode }) { + return ( +
+ ) } diff --git a/app/[lang]/(live)/@header/page.tsx b/app/[lang]/(live)/@header/page.tsx index 53bf8ae11..1e4be86af 100644 --- a/app/[lang]/(live)/@header/page.tsx +++ b/app/[lang]/(live)/@header/page.tsx @@ -2,6 +2,7 @@ import { baseUrls } from "@/constants/routes/baseUrls" import Header from "@/components/Current/Header" import LanguageSwitcher from "@/components/Current/Header/LanguageSwitcher" +import MyPagesMobileDropdown from "@/components/Current/Header/MyPagesMobileDropdown" import { LangParams, PageArgs } from "@/types/params" @@ -9,6 +10,7 @@ export default async function HeaderPage({ params }: PageArgs) { return (
} languageSwitcher={} /> ) diff --git a/app/[lang]/(live-current)/@myPagesMobileDropdown/page.tsx b/app/[lang]/(live-current)/@myPagesMobileDropdown/page.tsx new file mode 100644 index 000000000..bbcb00595 --- /dev/null +++ b/app/[lang]/(live-current)/@myPagesMobileDropdown/page.tsx @@ -0,0 +1,12 @@ +import { serverClient } from "@/lib/trpc/server" + +import MyPagesMobileDropdown from "@/components/Current/Header/MyPagesMobileDropdown" + +export default async function MyPagesMobileDropdownPage() { + // TODO: Dirty way to get lang value. Figure out a proper way. + const data = await serverClient().contentstack.languageSwitcher.get() + if (!data) { + return null + } + return +} diff --git a/app/[lang]/(live-current)/layout.tsx b/app/[lang]/(live-current)/layout.tsx index ce6ac8a4d..9712b1a86 100644 --- a/app/[lang]/(live-current)/layout.tsx +++ b/app/[lang]/(live-current)/layout.tsx @@ -24,8 +24,11 @@ export default async function RootLayout({ children, params, languageSwitcher, + myPagesMobileDropdown, }: React.PropsWithChildren< - LayoutArgs & { languageSwitcher: React.ReactNode } + LayoutArgs & { languageSwitcher: React.ReactNode } & { + myPagesMobileDropdown: React.ReactNode + } >) { const { defaultLocale, locale, messages } = await getIntl() return ( @@ -82,7 +85,11 @@ export default async function RootLayout({ -
+
{children}