{/* File header row — always visible, click to toggle */}
{/* Diff body */}
{open && (
{loading && (
Loading diff…
)}
{error && (
Failed to load diff: {error}
)}
{diff && (
diff.isBinary ? (
Binary file
) : diff.hunks.length === 0 ? (
No changes
) : (
diff.hunks.map((hunk, i) =>
)
)
)}
)}
)
}
function Hunk({ hunk }: { hunk: DiffHunk }) {
return (
{/* Hunk header */}
@@ -{hunk.oldStart},{hunk.oldLines} +{hunk.newStart},{hunk.newLines} @@
{hunk.lines.map((line, i) => (
{/* Old line number */}
{line.oldLine || ''}
{/* New line number */}
{line.newLine || ''}
{/* Sign */}
{line.type === 'added' ? '+' : line.type === 'deleted' ? '-' : ' '}
{/* Content */}
{line.content}
))}
)
}