npm i draft-js-raw-content-state --save
import Raw from 'draft-js-raw-content-state';
const rawContentState = new Raw();
-
.addBlock(text, type, data) Adds a new block.
-
.setKey(key) Adds a blockKey
-
.toRawContentState() Exports content as a rawContentState
-
.isBackward() Sets isBackward SelectionState property to true
-
.addEntity(entity, offset, length) Creates a new entity.
-
.addInlineStyle(style, offset, length) Creates a new inline style.
-
.anchorKey(offset)
-
.setAnchorKey(offset) Sets the anchorKey, you can also provide an offset.
-
.focusKey(offset)
-
.setFocusKey(offset) Sets the focusKey, you can also provide an offset.
-
.collapse(offset) Sets focus and anchorKey, you may provide an offset.
-
.setData(data) Sets the data on the block.
-
.log() console.logs the rawContentState.
-
.toContentState() Converts the raw contentState into a ContentState type object.
-
.toEditorState(decorator) Converts the raw contentState into an EditorState type object.
To convert to a raw contentState
const newEntity = {
type: 'CUSTOM_COLOR',
mutability: 'MUTABLE',
data: { color: 'red' }
};
const contentState = new Raw()
// first block
.addBlock('block 1')
.setKey('edr45')
.addEntity(newEntity, 2, 4)
// second block
.addBlock('block 2')
.addInlineStyle('COLOR_RED', 0, 6)
.anchorKey(2)
.focusKey(4)
.toEditorState();
Generates
{
"entityMap": {
"0": {
"data": {
"color": "red"
},
"type": "CUSTOM_COLOR",
"mutability": "MUTABLE"
}
},
"blocks": [
{
"key": "edr45",
"text": "block 1",
"type": "unstyled",
"depth": 0,
"inlineStyleRanges": [],
"entityRanges": [
{
"key": 0,
"offset": 2,
"length": 4
}
],
"data": {}
},
{
"key": "b6ar6",
"text": "block 2",
"type": "unstyled",
"depth": 0,
"inlineStyleRanges": [
{
"offset": 0,
"length": 6,
"style": "COLOR_RED"
}
],
"entityRanges": [],
"data": {}
}
]
}
You an also generate EditorState and ContentStates typed objects.
Please open an issue for support.
Feel free to fork this project, make changes and submit pull requests.