feat(WEB-205, WEB-206): get breadcrumbs for my pages from contentstack

This commit is contained in:
Simon Emanuelsson
2024-04-16 12:42:44 +02:00
parent b60f5c3858
commit b2e992c69a
31 changed files with 291 additions and 139 deletions

View File

@@ -1,10 +1,17 @@
import { serverClient } from "@/lib/trpc/server"
import { benefits } from "@/constants/routes/myPages"
import Breadcrumbs from "@/components/MyPages/Breadcrumbs"
export default async function BenefitsBreadcrumbs() {
import type { LangParams, PageArgs } from "@/types/params"
export default async function BenefitsBreadcrumbs({
params,
}: PageArgs<LangParams>) {
const href = benefits[params.lang].replace(`/${params.lang}`, "")
const breadcrumbs = await serverClient().contentstack.breadcrumbs.get({
href: "/my-pages/benefits",
href,
locale: params.lang,
})
return <Breadcrumbs breadcrumbs={breadcrumbs} />
}

View File

@@ -1,10 +1,17 @@
import { serverClient } from "@/lib/trpc/server"
import { overview } from "@/constants/routes/myPages"
import Breadcrumbs from "@/components/MyPages/Breadcrumbs"
export default async function OverviewBreadcrumbs() {
import type { LangParams, PageArgs } from "@/types/params"
export default async function OverviewBreadcrumbs({
params,
}: PageArgs<LangParams>) {
const href = overview[params.lang].replace(`/${params.lang}`, "")
const breadcrumbs = await serverClient().contentstack.breadcrumbs.get({
href: "/my-pages/overview",
href,
locale: params.lang,
})
return <Breadcrumbs breadcrumbs={breadcrumbs} />
}

View File

@@ -1,10 +1,17 @@
import { serverClient } from "@/lib/trpc/server"
import { profile } from "@/constants/routes/myPages"
import Breadcrumbs from "@/components/MyPages/Breadcrumbs"
export default async function ProfileBreadcrumbs() {
import type { LangParams, PageArgs } from "@/types/params"
export default async function ProfileBreadcrumbs({
params,
}: PageArgs<LangParams>) {
const href = profile[params.lang].replace(`/${params.lang}`, "")
const breadcrumbs = await serverClient().contentstack.breadcrumbs.get({
href: "/my-pages/profile",
href,
locale: params.lang,
})
return <Breadcrumbs breadcrumbs={breadcrumbs} />
}

View File

@@ -1,10 +1,17 @@
import { serverClient } from "@/lib/trpc/server"
import { profile } from "@/constants/routes/myPages"
import Breadcrumbs from "@/components/MyPages/Breadcrumbs"
export default async function ProfileBreadcrumbs() {
import type { LangParams, PageArgs } from "@/types/params"
export default async function ProfileBreadcrumbs({
params,
}: PageArgs<LangParams>) {
const href = profile[params.lang].replace(`/${params.lang}`, "")
const breadcrumbs = await serverClient().contentstack.breadcrumbs.get({
href: "/my-pages/profile",
href,
locale: params.lang,
})
return <Breadcrumbs breadcrumbs={breadcrumbs} />
}

View File

@@ -1,3 +0,0 @@
export default function Default() {
return null
}

View File

@@ -1,3 +0,0 @@
export default function Default() {
return null
}

View File

@@ -0,0 +1,4 @@
import "../profileLayout.css"
export default function EditProfilePage() {
return null
}

View File

@@ -1,10 +1,9 @@
import MaxWidth from "@/components/MaxWidth"
import styles from "./layout.module.css"
import type { ProfileLayoutProps } from "@/types/components/myPages/myProfile/layout"
export default function ProfileLayout({
children,
communication,
creditCards,
edit,
@@ -15,13 +14,14 @@ export default function ProfileLayout({
wishes,
}: React.PropsWithChildren<ProfileLayoutProps>) {
return (
<MaxWidth className={styles.page} tag="main">
<div className={styles.btns}>
<MaxWidth className="profile-page" tag="main">
<div className="profile-btns">
{edit}
{view}
</div>
{profile}
<section className={styles.cards}>
{children}
<section className="profile-cards">
{communication}
{wishes}
{membershipCard}

View File

@@ -0,0 +1,5 @@
import "./profileLayout.css"
export default function ProfilePage() {
return null
}

View File

@@ -1,9 +1,13 @@
.page {
/**
* Due to css import issues with parallell routes we are forced to
* use a regular css file and import it in the page.tsx
*/
.profile-page {
display: grid;
gap: 3rem;
}
.btns {
.profile-btns {
align-items: center;
display: flex;
gap: 1rem;
@@ -16,7 +20,7 @@
transform: translateY(-100%);
}
.cards {
.profile-cards {
display: grid;
gap: 0.4rem;
grid-template-columns: 1fr 1fr;