import type { FileDiffMetadata } from "@pierre/diffs"; import { FileDiff } from "@pierre/diffs/react"; import { useMemo, useState } from "react"; import { parseIncidentPrPatchFiles, visibleIncidentPrDiffFiles } from "./incident-pr-diff-model.ts"; const DIFF_OPTIONS = { theme: "pierre-dark", themeType: "dark", diffStyle: "unified", overflow: "wrap", hunkSeparators: "line-info-basic", diffIndicators: "bars", } as const; export default function IncidentPrDiffView({ patch, patchKey, }: { patch: string; patchKey: string; }) { const [selectedFileName, setSelectedFileName] = useState(null); const files = useMemo(() => parseIncidentPrPatchFiles(patch), [patch]); const visibleFiles = visibleIncidentPrDiffFiles(files, selectedFileName); return (
{visibleFiles.length > 0 ? (
{visibleFiles.map((file) => ( ))}
) : (
Diff could not be parsed.
)}
); } function FileTree({ files, selectedFileName, onSelect, }: { files: FileDiffMetadata[]; selectedFileName: string | null; onSelect: (name: string | null) => void; }) { return ( ); }