110 lines
3.1 KiB
TypeScript
110 lines
3.1 KiB
TypeScript
import FooterBrand from '@/components/sections/footer/FooterBrand';
|
|
import NavbarDropdown from '@/components/ui/NavbarDropdown';
|
|
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
|
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
|
|
import { Outlet } from 'react-router-dom';
|
|
import { StyleProvider } from "@/components/ui/StyleProvider";
|
|
import { MessageCircle } from 'lucide-react';
|
|
|
|
export default function Layout() {
|
|
const navItems = [
|
|
{
|
|
"name": "Home",
|
|
"href": "#hero"
|
|
},
|
|
{
|
|
"name": "About",
|
|
"href": "#about"
|
|
},
|
|
{
|
|
"name": "Services",
|
|
"href": "#services"
|
|
},
|
|
{
|
|
"name": "Contact",
|
|
"href": "#contact"
|
|
},
|
|
{
|
|
"name": "Features",
|
|
"href": "#features"
|
|
},
|
|
{
|
|
"name": "Pricing",
|
|
"href": "#pricing"
|
|
},
|
|
{
|
|
"name": "Team",
|
|
"href": "#team"
|
|
}
|
|
];
|
|
|
|
return (
|
|
<StyleProvider buttonVariant="default" siteBackground="gridDots" heroBackground="cornerGlow">
|
|
<SiteBackgroundSlot />
|
|
<div className="bg-primary-cta text-primary-cta-text py-2 px-4 text-sm flex justify-between items-center hidden md:flex">
|
|
<div className="flex gap-4">
|
|
<span>📞 +91 XXXXX XXXXX</span>
|
|
<span>💬 WhatsApp: +91 XXXXX XXXXX</span>
|
|
</div>
|
|
<div>
|
|
<span>🕒 Mon-Sat: 9AM - 8PM | Sun: Emergency Only</span>
|
|
</div>
|
|
</div>
|
|
<SectionErrorBoundary name="navbar">
|
|
<NavbarDropdown
|
|
logo="SmileCare"
|
|
ctaButton={{
|
|
text: "Book Now",
|
|
href: "#appointment",
|
|
}}
|
|
navItems={navItems} />
|
|
</SectionErrorBoundary>
|
|
<main className="flex-grow pb-20 md:pb-0">
|
|
<Outlet />
|
|
</main>
|
|
<a href="#whatsapp" className="fixed bottom-24 md:bottom-6 right-6 z-50 flex items-center justify-center w-14 h-14 bg-green-500 text-white rounded-full shadow-lg hover:bg-green-600 transition-colors">
|
|
<MessageCircle className="w-6 h-6" />
|
|
</a>
|
|
<div className="fixed bottom-0 left-0 right-0 p-4 bg-card border-t border-border flex gap-2 z-40 md:hidden shadow-[0_-4px_6px_-1px_rgba(0,0,0,0.1)]">
|
|
<a href="#appointment" className="flex-1 bg-primary-cta text-primary-cta-text text-center py-3 rounded-theme font-semibold">Book Now</a>
|
|
<a href="#whatsapp" className="flex-1 bg-green-500 text-white text-center py-3 rounded-theme font-semibold">WhatsApp</a>
|
|
</div>
|
|
<SectionErrorBoundary name="footer">
|
|
<FooterBrand
|
|
brand="SmileCare Dental Studio"
|
|
columns={[
|
|
{
|
|
items: [
|
|
{
|
|
label: "Services",
|
|
href: "#services",
|
|
},
|
|
{
|
|
label: "About Us",
|
|
href: "#about",
|
|
},
|
|
{
|
|
label: "Contact",
|
|
href: "#contact",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
items: [
|
|
{
|
|
label: "Privacy Policy",
|
|
href: "#",
|
|
},
|
|
{
|
|
label: "Terms of Service",
|
|
href: "#",
|
|
},
|
|
],
|
|
},
|
|
]}
|
|
/>
|
|
</SectionErrorBoundary>
|
|
</StyleProvider>
|
|
);
|
|
}
|