88 lines
1.9 KiB
TypeScript
88 lines
1.9 KiB
TypeScript
import FooterBasic from '@/components/sections/footer/FooterBasic';
|
|
import NavbarCentered from '@/components/ui/NavbarCentered';
|
|
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
|
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
|
|
import { Outlet } from 'react-router-dom';
|
|
import { StyleProvider } from "@/components/ui/StyleProvider";
|
|
|
|
export default function Layout() {
|
|
const navItems = [
|
|
{
|
|
"name": "Mempelai",
|
|
"href": "#mempelai"
|
|
},
|
|
{
|
|
"name": "Acara",
|
|
"href": "#acara"
|
|
},
|
|
{
|
|
"name": "Galeri",
|
|
"href": "#galeri"
|
|
},
|
|
{
|
|
"name": "Lokasi",
|
|
"href": "#lokasi"
|
|
},
|
|
{
|
|
"name": "Kirim Doa",
|
|
"href": "#doa"
|
|
},
|
|
{
|
|
"name": "Hero",
|
|
"href": "#hero"
|
|
}
|
|
];
|
|
|
|
return (
|
|
<StyleProvider buttonVariant="bubble" siteBackground="gridDots" heroBackground="gradientBars">
|
|
<SiteBackgroundSlot />
|
|
<SectionErrorBoundary name="navbar">
|
|
<NavbarCentered
|
|
logo="Amanda & Robert"
|
|
ctaButton={{
|
|
text: "Lihat di Kalender",
|
|
href: "#",
|
|
}}
|
|
navItems={navItems} />
|
|
</SectionErrorBoundary>
|
|
<main className="flex-grow">
|
|
<Outlet />
|
|
</main>
|
|
<SectionErrorBoundary name="footer">
|
|
<FooterBasic
|
|
columns={[
|
|
{
|
|
title: "Navigasi",
|
|
items: [
|
|
{
|
|
label: "Mempelai",
|
|
href: "#mempelai",
|
|
},
|
|
{
|
|
label: "Acara",
|
|
href: "#acara",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: "Informasi",
|
|
items: [
|
|
{
|
|
label: "Lokasi",
|
|
href: "#lokasi",
|
|
},
|
|
{
|
|
label: "Galeri",
|
|
href: "#galeri",
|
|
},
|
|
],
|
|
},
|
|
]}
|
|
leftText="© 2025 Amanda & Robert Wedding"
|
|
rightText="Designed on Areone.org"
|
|
/>
|
|
</SectionErrorBoundary>
|
|
</StyleProvider>
|
|
);
|
|
}
|