19 lines · 764 B
import { useQuery } from "@tanstack/react-query";
import { getPullCodeAlerts } from "~/fns/security";

export type PullCodeAlert = Awaited<ReturnType<typeof getPullCodeAlerts>>[number];

const NO_ALERTS: PullCodeAlert[] = [];

export const pullCodeAlertsQueryKey = (owner: string, repo: string, number: number) =>
  ["pull-code-alerts", owner, repo, number] as const;

/** Loads code scanning alerts for a pull request after render, so diffs never wait on them. */
export function usePullCodeAlerts(owner: string, repo: string, number: number): PullCodeAlert[] {
  const query = useQuery({
    queryKey: pullCodeAlertsQueryKey(owner, repo, number),
    queryFn: () => getPullCodeAlerts({ data: { owner, repo, number } }),
  });
  return query.data ?? NO_ALERTS;
}