import React from 'react';
import StyledWrapper from './StyledWrapper';
const renderLine = (line, highlightClass, hunkIdx) => {
const isHighlighted = line.isHighlighted || line.isError;
const key = hunkIdx != null ? `${hunkIdx}-${line.lineNumber}` : line.lineNumber;
return (
{line.lineNumber}
{isHighlighted ? '> ' : ' '}{line.content}
);
};
const CodeSnippet = ({ lines, hunks, variant = 'error' }) => {
const highlightClass = variant === 'warning' ? 'highlighted-warning' : 'highlighted-error';
if (hunks?.length) {
return (
{hunks.map((hunk, idx) => (
{hunk.hasSeparatorBefore && (
{'\u22EE'}
)}
{hunk.lines.map((line) => renderLine(line, highlightClass, idx))}
))}
);
}
if (!lines?.length) return null;
return (
{lines.map((line) => renderLine(line, highlightClass))}
);
};
export default CodeSnippet;