Files
654f9311-43de-4c2a-994a-69a…/src/components/Layout.tsx
kudinDmitriyUp 18ae8a46d0 Initial commit
2026-05-12 17:29:47 +00:00

79 lines
1.8 KiB
TypeScript

import FooterMinimal from '@/components/sections/footer/FooterMinimal';
import NavbarFloating from '@/components/ui/NavbarFloating';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
import { Bookmark, Facebook, Instagram } from "lucide-react";
import { Outlet } from 'react-router-dom';
import { StyleProvider } from "@/components/ui/StyleProvider";
export default function Layout() {
const navItems = [
{
"name": "Home",
"href": "#hero"
},
{
"name": "About",
"href": "#about"
},
{
"name": "Products",
"href": "#products"
},
{
"name": "Testimonials",
"href": "#testimonials"
},
{
"name": "FAQ",
"href": "#faq"
},
{
"name": "Contact",
"href": "#contact"
},
{
"name": "Features",
"href": "#features"
}
];
return (
<StyleProvider buttonVariant="bubble" siteBackground="noiseGradient" heroBackground="radialGradient">
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarFloating
ctaButton={{
text: "Get a Quote",
href: "#contact",
}}
logo="Timber & Grain Boutique"
navItems={navItems} />
</SectionErrorBoundary>
<main className="flex-grow">
<Outlet />
</main>
<SectionErrorBoundary name="footer">
<FooterMinimal
brand="Timber & Grain Boutique"
copyright="© 2024 Timber & Grain. All rights reserved."
socialLinks={[
{
icon: Facebook,
href: "#",
},
{
icon: Instagram,
href: "#",
},
{
icon: Bookmark,
href: "#",
},
]}
/>
</SectionErrorBoundary>
</StyleProvider>
);
}