react-string-diff
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

react-string-diff

Highlight the difference between two strings in a React component

NPM MIN MINZIP

Install

yarn add react-string-diff

# or

npm i react-string-diff

Props

Prop Type Default Description
oldValue string* Old value as string.
newValue string* New value as string.
component elementType div The component used for the root node. Either a string to use a HTML element or a component
className string Css class for the root node
method DiffMethod DiffMethod.Chars JsDiff text diff method used for diffing strings. Check out supported methods.
styles DiffStyles defaultStyles Overriding styles.

Usage

import React  from 'react';
import StringDiff from 'react-string-diff';

const oldValue = 'Lorem ipsum dolor sit amet';
const newValue = 'Loremi psum sit amet';

const DiffViewer = () => {
  return (<StringDiff oldValue={oldValue} newValue={newValue} />)
}

Methods

Different styles of text block diffing are possible by using the enums corresponding to variou JsDiff methods (learn more). The supported methods are as follows.

enum DiffMethod {
  Chars = 'diffChars',
  Words = 'diffWords',
  WordsWithSpace = 'diffWordsWithSpace',
  Lines = 'diffLines',
  TrimmedLines = 'diffTrimmedLines',
  Sentences = 'diffSentences',
  CSS = 'diffCss'
}

Overriding Styles

React String diff uses plan CSS object for styling. Override styles object to apply a custom styles variables

type DiffStyles = {
  added: React.CSSProperties;
  removed: React.CSSProperties;
  default: React.CSSProperties;
};

const defaultStyle: DiffStyles = {
  added: {
    backgroundColor: 'lightgreen'
  },
  removed: {
    backgroundColor: 'salmon'
  },
  default: {}
};

Local Development

yarn install
yarn start
yarn start:example

Check package.json for more build scripts.

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i react-string-diff

Weekly Downloads

4,384

Version

0.2.0

License

MIT

Unpacked Size

21.3 kB

Total Files

15

Last publish

Collaborators

  • elv1n