"use client"; import { useState, useEffect } from "react"; import MapLoader from "~/components/MapLoader"; import Drawer from "~/components/Drawer"; import Navbar from "~/components/Navbar"; import { COFFEE_SHOPS, type CoffeeShop } from "~/lib/data"; import { WelcomeModal } from "~/components/WelcomeModal"; export default function HomePage() { const [selectedShop, setSelectedShop] = useState(null); const [isDiscoveryOpen, setIsDiscoveryOpen] = useState(true); // Default to true for SSR const [mounted, setMounted] = useState(false); useEffect(() => { setMounted(true); // Set based on viewport after mount const isMobile = window.innerWidth < 640; // sm breakpoint setIsDiscoveryOpen(!isMobile); }, []); return (
{/* Navbar - always visible */} setIsDiscoveryOpen(!isDiscoveryOpen)} /> {/* Right Drawer - only render after mount to prevent hydration mismatch */} {mounted && ( { setSelectedShop(null); setIsDiscoveryOpen(true); }} isOpen={isDiscoveryOpen} onToggleOpen={() => setIsDiscoveryOpen(false)} /> )} {/* Map Background */}
{ setSelectedShop(shop); }} selectedShop={selectedShop} isDiscoveryOpen={isDiscoveryOpen} />
); }