Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/AlastairTaft/draft-js-editor
A rich text editor built using draft js
https://github.com/AlastairTaft/draft-js-editor
Last synced: 3 months ago
JSON representation
A rich text editor built using draft js
- Host: GitHub
- URL: https://github.com/AlastairTaft/draft-js-editor
- Owner: AlastairTaft
- License: other
- Archived: true
- Created: 2016-02-28T09:32:55.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-10-20T22:24:53.000Z (9 months ago)
- Last Synced: 2024-04-03T17:10:59.839Z (3 months ago)
- Language: JavaScript
- Homepage: http://alastairtaft.github.io/draft-js-editor/
- Size: 1.01 MB
- Stars: 150
- Watchers: 8
- Forks: 18
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-draft-js - Draft.js Editor - A Rich text editor inspired by Medium & Facebook Notes. (Standalone Editors Built on Draft.js)
- awesome-draft-js - Draft.js Editor - A Rich text editor inspired by Medium & Facebook Notes. (Standalone Editors Built on Draft.js)
README
# ⚠️ 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](https://facebook.github.io/draft-js/).Takes inspiration from the text editors on [medium](http://medium.com) and
[facebook notes](https://www.facebook.com/notes/).## Get started
`npm install draft-js-editor --save`## Usage
Import the `Editor` class into your file. The example below uses [ES6](https://babeljs.io/) but it's not mandatory.
```javascript
//...
import Editor from 'draft-js-editor'class MyClass extends React.Component {
state = {};
render() {
return
A sample text editor
this.setState({ editorState })}
editorState={this.state.editorState}
/>
}
}
```## API
The Editor component accepts all the [draft-js Editor](https://facebook.github.io/draft-js/docs/api-reference-editor.html#content) 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 stateIf 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`](https://facebook.github.io/draft-js/docs/api-reference-data-conversion.html#convertfromraw) and [`convertToRaw`](https://facebook.github.io/draft-js/docs/api-reference-data-conversion.html#converttoraw)
These methods require a [`ContentState`](https://facebook.github.io/draft-js/docs/api-reference-content-state.html) which you can obtain by calling [`getCurrentContent`](https://facebook.github.io/draft-js/docs/api-reference-editor-state.html#getcurrentcontent) on the [`editorState`](https://facebook.github.io/draft-js/docs/api-reference-editor-state.html) object returned from the `onChange` event.
##### Hydrating an editor state from raw content
You can use the static [`createWithContent`](https://facebook.github.io/draft-js/docs/api-reference-editor-state.html#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)
```