diff --git a/examples/checkable-list-example/src/CheckableList.js b/examples/checkable-list-example/src/CheckableList.js index ad387a4..5efe156 100644 --- a/examples/checkable-list-example/src/CheckableList.js +++ b/examples/checkable-list-example/src/CheckableList.js @@ -6,10 +6,10 @@ import { ContentBlock, DefaultDraftBlockRenderMap, RichUtils, + Modifier, } from 'draft-js' import { withPluginContext } from '@djsp/core' import type { PluginProps } from '@djsp/core' -import { mergeBlockData } from '@djsp/utils' import { CheckableListItem, CheckableListItemBlock, @@ -20,31 +20,34 @@ import { class CheckableList extends Component { _unregister: () => void - updateEditorState = (newEditorState: EditorState) => { - const { setEditorState, editorState } = this.props - setEditorState( - EditorState.forceSelection(newEditorState, editorState.getSelection()) - ) - } - onClick = event => { event.stopPropagation() - const { editorState } = this.props + const { setEditorState, editorState } = this.props const newEditorState = RichUtils.toggleBlockType( editorState, CHECKABLE_LIST_ITEM ) - this.updateEditorState(newEditorState) + setEditorState( + EditorState.forceSelection(newEditorState, editorState.getSelection()) + ) } toggleChecked = (block: ContentBlock) => { - const { editorState } = this.props - - let newEditorState = mergeBlockData(editorState, block, { - checked: !block.getData().get('checked'), - }) - this.updateEditorState(newEditorState) + const { setEditorState, editorState } = this.props + let newContentState = Modifier.mergeBlockData( + editorState.getCurrentContent(), + editorState.getSelection(), + { + checked: !block.getData().get('checked'), + } + ) + let newEditorState = EditorState.push( + editorState, + newContentState, + 'change-block-data' + ) + setEditorState(newEditorState) } componentDidMount() { diff --git a/packages/utils/README.md b/packages/utils/README.md index f0bdac7..6962feb 100644 --- a/packages/utils/README.md +++ b/packages/utils/README.md @@ -149,12 +149,6 @@ getWordCount(editorState: EditorState): number mergeEntityData(editorState: EditorState, entityKey: string, data: Object): EditorState ``` -### mergeBlockData - -```javascript -mergeBlockData(editorState: EditorState, block: ContentBlock, data: { [id: string]: any }): EditorState -``` - ## License MIT © [juliankrispel](https://github.com/juliankrispel) diff --git a/packages/utils/src/index.js b/packages/utils/src/index.js index 464f058..f0899a4 100644 --- a/packages/utils/src/index.js +++ b/packages/utils/src/index.js @@ -278,19 +278,3 @@ export function mergeEntityData( return EditorState.push(editorState, newContentState, 'apply-entity') } - -export function mergeBlockData( - editorState: EditorState, - block: ContentBlock, - data: { [id: string]: any } -): EditorState { - const content = editorState.getCurrentContent() - const updatedBlock = block.mergeIn(['data'], data) - const blockKey = block.getKey() - const blockMap = content.getBlockMap().merge({ [blockKey]: updatedBlock }) - return EditorState.push( - editorState, - content.merge({ blockMap }), - 'change-block-data' - ) -}