bonafideduck / react-highlight-within-textarea

React component for highlighting bits of text within a textarea
100 stars 13 forks source link

react-highlight-within-textarea

React component for highlighting spans of text within a textarea

NPM JavaScript Style Guide Yarn Test

Install

npm install --save react-highlight-within-textarea
npm install --save draft-js
yarn add react-highlight-within-textarea
yarn add draft-js

Note: This has a peer dependency of draft-js.

Usage

import React from 'react';
import { useState } from 'react';
import { HighlightWithinTextarea } from 'react-highlight-within-textarea'

const Example = () => {
  const [value, setValue] = useState("X Y Z and then XYZ");
  const onChange = (value) => setValue(value);
  return (
    <HighlightWithinTextarea
      value={value}
      highlight={/[XYZ]/g}
      onChange= {onChange}
    />
  );
};

The highlight property accepts several different types of values to describe what will be highlighted. You can see the various ways to highlight things, along with example code, on the documentation and demo page.

Properties

The following properties are used directly by this library. Additional properties are passed unmodified directly to the Draft.js Editor Component.

value: This can either be the text value or a DraftJs EditorState.

onChange: This is called whenever the text value or selection changes. You must update value to accept this change. You only have to set the selection property if you want to change the current selection.

highlight: This specifies what to highlght. For more info, see the demo page.

selection: A selection containing anchor and focus that can be use to place the cursor or set selections.

ref: This returns a forwardRef to the underlying Draft.js Editor Component.

Properties passed directly to Draft.js Editor Component

The following properties are passed unmodified directly to the Draft.js Editor Component.

autoCapitalize autoComplete autoCorrect editorKey handleBeforeInput handleDrop handleDroppedFiles handleKeyCommand handlePastedFiles handlePastedText handleReturn keyBindingFn onBlur onFocus placeholder readOnly spellCheck stripPastedStyles textAlignment textDirectionality

Known and Potential Issues

The following have not yet been verified to work or have issues.

Changes

See HISTORY.md

License

MIT © bonafideduck