import { useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { useQuery } from "@tanstack/react-query"; import { issuesApi } from "../api/issues"; import { useCompany } from "../context/CompanyContext"; import { useBreadcrumbs } from "../context/BreadcrumbContext"; import { queryKeys } from "../lib/queryKeys"; import { StatusIcon } from "../components/StatusIcon"; import { PriorityIcon } from "../components/PriorityIcon"; import { EntityRow } from "../components/EntityRow"; import { EmptyState } from "../components/EmptyState"; import { formatDate } from "../lib/utils"; import { ListTodo } from "lucide-react"; export function MyIssues() { const { selectedCompanyId } = useCompany(); const { setBreadcrumbs } = useBreadcrumbs(); const navigate = useNavigate(); useEffect(() => { setBreadcrumbs([{ label: "My Issues" }]); }, [setBreadcrumbs]); const { data: issues, isLoading, error } = useQuery({ queryKey: queryKeys.issues.list(selectedCompanyId!), queryFn: () => issuesApi.list(selectedCompanyId!), enabled: !!selectedCompanyId, }); if (!selectedCompanyId) { return ; } // Show issues that are not assigned (user-created or unassigned) const myIssues = (issues ?? []).filter( (i) => !i.assigneeAgentId && !["done", "cancelled"].includes(i.status) ); return (

My Issues

{isLoading &&

Loading...

} {error &&

{error.message}

} {!isLoading && myIssues.length === 0 && ( )} {myIssues.length > 0 && (
{myIssues.map((issue) => ( navigate(`/issues/${issue.id}`)} leading={ <> } trailing={ {formatDate(issue.createdAt)} } /> ))}
)}
); }