import { createFileRoute, Link } from "@tanstack/react-router"; import { useEffect, useState } from "react"; import { GlobalItemCard } from "../../components/GlobalItemCard"; import { useGlobalItems } from "../../hooks/useGlobalItems"; export const Route = createFileRoute("/global-items/")({ component: GlobalItemsCatalog, }); function GlobalItemsCatalog() { const [searchInput, setSearchInput] = useState(""); const [debouncedQuery, setDebouncedQuery] = useState(""); useEffect(() => { const timer = setTimeout(() => { setDebouncedQuery(searchInput); }, 300); return () => clearTimeout(timer); }, [searchInput]); const { data: items, isLoading } = useGlobalItems( debouncedQuery || undefined, ); return (
← Dashboard

Global Gear Catalog

Browse and discover gear from the shared catalog

{/* Search */}
setSearchInput(e.target.value)} placeholder="Search gear by brand or model..." className="w-full pl-10 pr-4 py-2.5 bg-white border border-gray-200 rounded-lg text-sm text-gray-900 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-gray-200 focus:border-gray-300 transition-colors" /> {searchInput && ( )}
{/* Results */} {isLoading ? (
{["a", "b", "c", "d", "e", "f"].map((id) => (
))}
) : items && items.length > 0 ? (
{items.map((item) => ( ))}
) : (

{debouncedQuery ? "No items found matching your search" : "No items in the global catalog yet"}

)}
); }