Home

Awesome

⚠️ Archived

This repo is not maintained, I would encourage not using it.

draft-js-editor

A rich text editor built using facebook's draft.js.

Takes inspiration from the text editors on medium and facebook notes.

Get started

npm install draft-js-editor --save

Usage

Import the Editor class into your file. The example below uses ES6 but it's not mandatory.

//...
import Editor from 'draft-js-editor'

class MyClass extends React.Component {

  state = {};

  render() {
    return <div>
      A sample text editor
      <Editor 
        onChange={(editorState) => this.setState({ editorState })}
        editorState={this.state.editorState}
      />
    </div>
  }
}

API

The Editor component accepts all the draft-js Editor props with the following additional ones.

Editor Props

Saving the state

If you need to persist the editor state somewhere there are two useful methods that are part of the draft-js library that will let you convert to and from a string, convertFromRaw and convertToRaw

These methods require a ContentState which you can obtain by calling getCurrentContent on the editorState object returned from the onChange event.

Hydrating an editor state from raw content

You can use the static createWithContent method to obtain an editor state that can be passed in as a parameter to the Editor.

import { EditorState, convertFromRaw } from 'draft-js'
const contentState = convertFromRaw(rawContent)
const editorState = EditorState.createWithContent(contentState)