MCPcopy Create free account
hub / github.com/danvk/webdiff / DiffRow

Function DiffRow

ts/codediff/DiffRow.tsx:38–71  ·  view source on GitHub ↗
(props: DiffRowProps)

Source from the content-addressed store, hash-verified

36};
37
38export function DiffRow(props: DiffRowProps) {
39 const {beforeLineNum, afterLineNum, type, isSelected} = props;
40 const cells = [
41 makeCodeTd(type, props.beforeText, props.beforeHTML),
42 makeCodeTd(type, props.afterText, props.afterHTML),
43 ];
44 let [beforeHtml, afterHtml] = [cells[0].html, cells[1].html];
45 if (type === 'replace') {
46 [beforeHtml, afterHtml] = addCharacterDiffs(
47 cells[0].text,
48 cells[0].html,
49 cells[1].text,
50 cells[1].html,
51 );
52 }
53 const rowRef = React.useRef<HTMLTableRowElement>(null);
54 React.useEffect(() => {
55 if (isSelected && rowRef.current) {
56 scrollIntoViewIfNeeded(rowRef.current);
57 }
58 }, [isSelected]);
59 return (
60 <tr ref={rowRef} className={isSelected ? 'selected' : undefined}>
61 <td className="line-no">{beforeLineNum ?? ''}</td>
62 <td
63 className={cells[0].className + ' before'}
64 dangerouslySetInnerHTML={{__html: beforeHtml}}></td>
65 <td
66 className={cells[1].className + ' after'}
67 dangerouslySetInnerHTML={{__html: afterHtml}}></td>
68 <td className="line-no">{afterLineNum ?? ''}</td>
69 </tr>
70 );
71}

Callers

nothing calls this directly

Calls 3

addCharacterDiffsFunction · 0.90
scrollIntoViewIfNeededFunction · 0.90
makeCodeTdFunction · 0.85

Tested by

no test coverage detected