import { emptyBGName, borderColorName } from "@git-diff-view/utils"; import * as React from "react"; import { SplitSide } from ".."; import { useDiffViewContext } from "./DiffViewContext"; import type { DiffFile } from "@git-diff-view/core"; const InternalDiffSplitExtendLine = ({ index, diffFile, lineNumber, oldLineExtend, newLineExtend, }: { index: number; diffFile: DiffFile; lineNumber: number; oldLineExtend: { data: any }; newLineExtend: { data: any }; }) => { const { useDiffContext } = useDiffViewContext(); const oldLine = diffFile.getSplitLeftLine(index); const newLine = diffFile.getSplitRightLine(index); // 需要显示的时候才进行方法订阅,可以大幅度提高性能 const renderExtendLine = useDiffContext.useShallowStableSelector((s) => s.renderExtendLine); if (!renderExtendLine) return null; const oldExtendRendered = oldLineExtend?.data && renderExtendLine?.({ diffFile, side: SplitSide.old, lineNumber: oldLine.lineNumber ?? -1, data: oldLineExtend.data, onUpdate: diffFile.notifyAll, }); const newExtendRendered = newLineExtend?.data && renderExtendLine?.({ diffFile, side: SplitSide.new, lineNumber: newLine.lineNumber ?? -1, data: newLineExtend.data, onUpdate: diffFile.notifyAll, }); return (