fix: better code organisation for ContentType components

This commit is contained in:
Chuma McPhoy
2024-06-27 13:17:26 +02:00
parent 00c04de09a
commit 879b7abd82
6 changed files with 15 additions and 36 deletions

View File

@@ -0,0 +1,29 @@
import { serverClient } from "@/lib/trpc/server"
import { Blocks } from "@/components/Loyalty/Blocks"
import Sidebar from "@/components/Loyalty/Sidebar"
import MaxWidth from "@/components/MaxWidth"
import Title from "@/components/TempDesignSystem/Text/Title"
import styles from "./loyaltyPage.module.css"
import type { LangParams } from "@/types/params"
export default async function LoyaltyPage({ lang }: LangParams) {
const loyaltyPage = await serverClient().contentstack.loyaltyPage.get()
if (!loyaltyPage) {
return null
}
return (
<section className={styles.content}>
{loyaltyPage.sidebar.length ? (
<Sidebar blocks={loyaltyPage.sidebar} lang={lang} />
) : null}
<MaxWidth className={styles.blocks} tag="main">
<Title>{loyaltyPage.heading}</Title>
{loyaltyPage.blocks ? <Blocks blocks={loyaltyPage.blocks} /> : null}
</MaxWidth>
</section>
)
}

View File

@@ -0,0 +1,39 @@
.content {
display: grid;
padding-bottom: var(--Spacing-x9);
padding-left: var(--Spacing-x0);
padding-right: var(--Spacing-x0);
position: relative;
}
.blocks {
display: grid;
gap: var(--Spacing-x5);
padding-left: var(--Spacing-x2);
padding-right: var(--Spacing-x2);
}
@media screen and (min-width: 1367px) {
.content {
gap: var(--Spacing-x3);
padding-left: var(--Spacing-x3);
padding-right: var(--Spacing-x3);
}
.content:has(> aside) {
grid-template-columns: 360px 1fr;
}
.content:has(> aside) .blocks {
grid-column: 2 / -1;
}
.blocks {
padding-left: var(--Spacing-x0);
padding-right: var(--Spacing-x0);
}
.blocks > section:first-of-type > header {
gap: var(--Spacing-x2);
}
}