import { useEffect, useState } from "react"; import { getPullCodeAlerts } from "~/fns/security"; export type PullCodeAlert = Awaited>[number]; /** Fetches code scanning alerts for a pull request after render, so diffs load without waiting on them. */ export function usePullCodeAlerts(owner: string, repo: string, number: number): PullCodeAlert[] { const [alerts, setAlerts] = useState([]); useEffect(() => { let cancelled = false; getPullCodeAlerts({ data: { owner, repo, number } }) .then((rows) => { if (!cancelled) setAlerts(rows); }) .catch(() => undefined); return () => { cancelled = true; }; }, [owner, repo, number]); return alerts; }