import { useCallback, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { goalsApi } from "../api/goals"; import { useApi } from "../hooks/useApi"; import { useCompany } from "../context/CompanyContext"; import { useBreadcrumbs } from "../context/BreadcrumbContext"; import { GoalTree } from "../components/GoalTree"; import { EmptyState } from "../components/EmptyState"; import { Target } from "lucide-react"; export function Goals() { const { selectedCompanyId } = useCompany(); const { setBreadcrumbs } = useBreadcrumbs(); const navigate = useNavigate(); useEffect(() => { setBreadcrumbs([{ label: "Goals" }]); }, [setBreadcrumbs]); const fetcher = useCallback(() => { if (!selectedCompanyId) return Promise.resolve([]); return goalsApi.list(selectedCompanyId); }, [selectedCompanyId]); const { data: goals, loading, error } = useApi(fetcher); if (!selectedCompanyId) { return ; } return (

Goals

{loading &&

Loading...

} {error &&

{error.message}

} {goals && goals.length === 0 && ( {/* TODO: goal creation */}} /> )} {goals && goals.length > 0 && ( navigate(`/goals/${goal.id}`)} /> )}
); }