🚨 Latest Research:Tanstack npm Packages Compromised in Ongoing Mini Shai-Hulud Supply-Chain Attack.Learn More
Socket
Book a DemoSign in
Socket

@git-diff-view/react

Package Overview
Dependencies
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@git-diff-view/react

@git-diff-view/react

latest
Source
npmnpm
Version
0.1.3
Version published
Weekly downloads
103K
35.02%
Maintainers
1
Weekly downloads
 
Created
Source

@git-diff-view/react

A high-performance React diff view component with GitHub-style UI

npm version npm downloads

Features

  • ✅ Split & Unified views
  • ✅ Syntax highlighting with full context
  • ✅ Light & Dark themes
  • ✅ SSR & RSC support
  • ✅ Widget & extend data system
  • ✅ High performance with Web Worker support

Installation

npm install @git-diff-view/react
# or
pnpm add @git-diff-view/react
# or
yarn add @git-diff-view/react

Quick Start

Basic Usage

import { DiffView, DiffModeEnum } from "@git-diff-view/react";
import "@git-diff-view/react/styles/diff-view.css";

function MyDiffView() {
  return (
    <DiffView
      data={{
        oldFile: { fileName: "old.ts", content: "..." },
        newFile: { fileName: "new.ts", content: "..." },
        hunks: ["..."]
      }}
      diffViewMode={DiffModeEnum.Split}
      diffViewTheme="dark"
      diffViewHighlight
    />
  );
}

Advanced Usage with DiffFile

File Comparison Mode

import { DiffView } from "@git-diff-view/react";
import { DiffFile, generateDiffFile } from "@git-diff-view/file";
import "@git-diff-view/react/styles/diff-view.css";

const file = generateDiffFile(
  "old.ts", oldContent,
  "new.ts", newContent,
  "typescript", "typescript"
);
file.initTheme('dark');
file.init();
file.buildSplitDiffLines();

<DiffView diffFile={file} />

Git Diff Mode

import { DiffView } from "@git-diff-view/react";
import { DiffFile } from "@git-diff-view/core";
import "@git-diff-view/react/styles/diff-view.css";

const file = new DiffFile(
  oldFileName,
  oldContent,
  newFileName,
  newContent,
  hunks,
  oldFileLang,
  newFileLang
);
file.initTheme('dark');
file.init();
file.buildSplitDiffLines();

<DiffView diffFile={file} />

Styling

// Default styles with Tailwind (next release will be pure CSS)
import "@git-diff-view/react/styles/diff-view.css";

// Pure CSS (no Tailwind conflicts)
import "@git-diff-view/react/styles/diff-view-pure.css";

API Reference

Props

PropTypeDescription
dataDiffDataDiff data with oldFile, newFile, and hunks
diffFileDiffFilePre-processed diff file instance
diffViewModeSplit | UnifiedView mode (default: Split)
diffViewThemelight | darkTheme (default: light)
diffViewHighlightbooleanEnable syntax highlighting
diffViewWrapbooleanEnable line wrapping
diffViewFontSizenumberFont size in pixels
diffViewAddWidgetbooleanEnable widget button
renderWidgetLine(props) => ReactNodeCustom widget renderer
renderExtendLine(props) => ReactNodeCustom extend data renderer
extendDataExtendDataAdditional data per line
onAddWidgetClick(props) => voidWidget button click handler

DiffData Type

type DiffData = {
  oldFile?: {
    fileName?: string | null;
    fileLang?: string | null;
    content?: string | null;
  };
  newFile?: {
    fileName?: string | null;
    fileLang?: string | null;
    content?: string | null;
  };
  hunks: string[];
};

Examples

Live Demo

Try it online: https://mrwangjusttodo.github.io/git-diff-view

License

MIT © MrWangJustToDo

Keywords

diff component

FAQs

Package last updated on 19 Mar 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts