Skip to content
This repository was archived by the owner on Oct 11, 2022. It is now read-only.

Commit aae77e9

Browse files
committed
fix error on checkbox checked change
1 parent 7dad9a2 commit aae77e9

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

Diff for: src/__test__/plugin.test.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -430,15 +430,19 @@ describe("draft-js-markdown-plugin", () => {
430430
afterEach(() => {
431431
CheckableListItemUtils.toggleChecked.mockRestore();
432432
});
433-
it("returns renderer", () => {
433+
it("returns renderer", async () => {
434434
type = "checkable-list-item";
435435
data = { checked: true };
436436
const renderer = subject();
437437
expect(typeof renderer).toBe("object");
438438
expect(renderer.component).toBe(CheckableListItem);
439439
expect(typeof renderer.props.onChangeChecked).toBe("function");
440440
expect(renderer.props.checked).toBe(true);
441-
renderer.props.onChangeChecked();
441+
const event = new Event("change", { bubbles: true });
442+
443+
event.simulated = true;
444+
renderer.props.onChangeChecked(event);
445+
await new Promise(resolve => setTimeout(() => resolve()));
442446
expect(spyOnChangeChecked).toHaveBeenCalledWith(
443447
currentEditorState,
444448
block

Diff for: src/index.js

+11-4
Original file line numberDiff line numberDiff line change
@@ -297,10 +297,17 @@ const createMarkdownPlugin = (_config = {}) => {
297297
return {
298298
component: CheckableListItem,
299299
props: {
300-
onChangeChecked: () =>
301-
setEditorState(
302-
CheckableListItemUtils.toggleChecked(getEditorState(), block)
303-
),
300+
onChangeChecked: e => {
301+
e.preventDefault();
302+
setTimeout(() =>
303+
setEditorState(
304+
CheckableListItemUtils.toggleChecked(
305+
getEditorState(),
306+
block
307+
)
308+
)
309+
);
310+
},
304311
checked: !!block.getData().get("checked"),
305312
},
306313
};

0 commit comments

Comments
 (0)