"use client"; import { SearchBar } from "@/components/molecules/search-bar"; import { ProductGrid } from "@/components/organisms/product-grid"; import { eateryClient } from "@/lib/apollo-clients"; import { useAuth } from "@/lib/auth-context"; import { allEateriesQuery } from "@/lib/types"; import { gql } from "@apollo/client"; import { useQuery } from "@apollo/client/react"; import { useRouter } from "next/navigation"; import { useEffect, useState } from "react"; const GET_EATERY_COUNT = gql` { allEateries { id } } `; function StaffHomePage() { const [isSidebarOpen, setIsSidebarOpen] = useState(false); const [searchQuery, setSearchQuery] = useState(""); useEffect(() => { const mq = window.matchMedia("(min-width: 1024px)"); // eslint-disable-next-line react-hooks/set-state-in-effect setIsSidebarOpen(mq.matches); const handler = (e: MediaQueryListEvent) => setIsSidebarOpen(e.matches); mq.addEventListener("change", handler); return () => mq.removeEventListener("change", handler); }, []); return (
{/* ── Body — same as Customer ── */}
setSearchQuery(q)} onClear={() => setSearchQuery("")} placeholder="Search items..." className="sm:max-w-xs" />
); } export default function Home() { const router = useRouter(); const { user, isInitialized } = useAuth(); const [isSidebarOpen, setIsSidebarOpen] = useState(false); const [searchQuery, setSearchQuery] = useState(""); const { data, loading, error } = useQuery( GET_EATERY_COUNT, { client: eateryClient, fetchPolicy: "no-cache", skip: user?.role === "staff", }, ); useEffect(() => { if (!loading && data) { console.log(data); const count = data.allEateries.length ?? 0; if (count === 0) { router.push("/manager-signup"); } } }, [data, loading, router]); useEffect(() => { const mq = window.matchMedia("(min-width: 1024px)"); // eslint-disable-next-line react-hooks/set-state-in-effect setIsSidebarOpen(mq.matches); const handler = (e: MediaQueryListEvent) => setIsSidebarOpen(e.matches); mq.addEventListener("change", handler); return () => mq.removeEventListener("change", handler); }, []); if (!isInitialized) return
Loading...
; if (user?.role === "staff") return ; if (loading) return
Loading...
; if (error) return
Error: {error.message}
; return (
{/* ── Main content ── */}
{/* ── Section heading + search bar ── */}
{ setSearchQuery(q); }} onClear={() => setSearchQuery("")} placeholder="Search items..." className="sm:max-w-xs" />
{/* ── Product grid (organism handles mobile category menu + grid) ── */}
); }