GithubHelp home page GithubHelp logo

harukihosono / draft-js-editor Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alastairtaft/draft-js-editor

0.0 0.0 0.0 1.11 MB

A rich text editor built using draft js

Home Page: http://alastairtaft.github.io/draft-js-editor/

License: Other

JavaScript 100.00%

draft-js-editor's Introduction

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

  • iconColor The color of the icons
  • iconSelectedColor The color of the icon when selected
  • popoverStyle Override the inline styles for the popover menu controls
  • inlineButtons This should be an array of React elements that will be rendered. Use this to customise the popover inline buttons. There's a 'Custom Inline Buttons' example under examples. Each element that gets rendered gets passed the following props: updateEditorState (call this after doing any editor state manipulations), editorState (the editor state), iconColor, iconSelectedColor.
  • blockButtons Customise the block buttons. See the custom block button example
  • blockTypes An object mapping custom types to components. Simpler than using draft-js's native blockRenderFn property.
  • showInlineButtons Set to false to prevent showing the inline buttons.
  • SideControl Override the side control to completely customise the interface. See the demo for an example.

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)

draft-js-editor's People

Contributors

alastairtaft avatar alexlongtoptal avatar brakmic avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.