import { useState } from "react"; import { useLanguage } from "../contexts/LanguageContext"; import { useListPublishedRequests } from "@workspace/api-client-react"; import { Skeleton } from "@/components/ui/skeleton"; import { OpportunityCard } from "../components/OpportunityCard"; import { Reveal } from "../components/Reveal"; type NeedTypeKey = | "electricity" | "water" | "food" | "health" | "housing" | "refrigerator" | "air_conditioner" | "court_order"; const NEED_TYPES: NeedTypeKey[] = [ "electricity", "water", "food", "health", "housing", "refrigerator", "air_conditioner", "court_order", ]; export default function Opportunities() { const { t } = useLanguage(); const { data: requests, isLoading } = useListPublishedRequests(); const [activeFilter, setActiveFilter] = useState("all"); const filtered = (requests || []).filter((r) => activeFilter === "all" ? true : r.needType === activeFilter ); return (

{t.opportunities.title}

{/* Filter Bar */}

{t.opportunities.filterByType}

{NEED_TYPES.map((type) => ( ))}
{isLoading ? (
{[1, 2, 3].map((i) => ( ))}
) : filtered.length === 0 ? (
{t.opportunities.noOpportunities}
) : (
{filtered.map((request, i) => ( ))}
)}
); }