import { useEffect } from "react"; import { useQuery } from "@tanstack/react-query"; import { projectsApi } from "../api/projects"; import { useCompany } from "../context/CompanyContext"; import { useDialog } from "../context/DialogContext"; import { useBreadcrumbs } from "../context/BreadcrumbContext"; import { queryKeys } from "../lib/queryKeys"; import { EntityRow } from "../components/EntityRow"; import { StatusBadge } from "../components/StatusBadge"; import { EmptyState } from "../components/EmptyState"; import { PageSkeleton } from "../components/PageSkeleton"; import { formatDate, projectUrl } from "../lib/utils"; import { Button } from "@/components/ui/button"; import { Hexagon, Plus } from "lucide-react"; export function Projects() { const { selectedCompanyId } = useCompany(); const { openNewProject } = useDialog(); const { setBreadcrumbs } = useBreadcrumbs(); useEffect(() => { setBreadcrumbs([{ label: "Projects" }]); }, [setBreadcrumbs]); const { data: projects, isLoading, error } = useQuery({ queryKey: queryKeys.projects.list(selectedCompanyId!), queryFn: () => projectsApi.list(selectedCompanyId!), enabled: !!selectedCompanyId, }); if (!selectedCompanyId) { return ; } if (isLoading) { return ; } return (
{error &&

{error.message}

} {projects && projects.length === 0 && ( )} {projects && projects.length > 0 && (
{projects.map((project) => ( {project.targetDate && ( {formatDate(project.targetDate)} )}
} /> ))}
)} ); }