diff --git a/packages/core/src/editor/actions.ts b/packages/core/src/editor/actions.ts index 09b36602e..f362793ec 100644 --- a/packages/core/src/editor/actions.ts +++ b/packages/core/src/editor/actions.ts @@ -310,12 +310,11 @@ const Methods = ( eventType: NodeEventTypes, nodeIdSelector: NodeSelector ) { - const current = state.events[eventType]; - if (current.size > 0) { - current.forEach((id) => { + state.events[eventType].forEach((id) => { + if (state.nodes[id]) { state.nodes[id].events[eventType] = false; - }); - } + } + }); state.events[eventType] = new Set(); @@ -329,13 +328,10 @@ const Methods = ( }); const nodeIds: Set = new Set(targets.map(({ node }) => node.id)); - - if (nodeIds) { - nodeIds.forEach((id) => { - state.nodes[id].events[eventType] = true; - }); - state.events[eventType] = nodeIds; - } + nodeIds.forEach((id) => { + state.nodes[id].events[eventType] = true; + }); + state.events[eventType] = nodeIds; }, /** diff --git a/packages/slate/src/extend/editable/useCraftStateSync.tsx b/packages/slate/src/extend/editable/useCraftStateSync.tsx index 525cb833d..635669efb 100644 --- a/packages/slate/src/extend/editable/useCraftStateSync.tsx +++ b/packages/slate/src/extend/editable/useCraftStateSync.tsx @@ -98,16 +98,9 @@ export const useCraftStateSync = () => { }, [slateSelection]); useEffect(() => { - const { apply, onChange } = slateEditor; + const { apply } = slateEditor; slateEditor.onChange = () => { - onChange(); - - // Don't update Craft state if only selection operations had been performed - if (slateEditor.operations.every((op) => op.type === 'set_selection')) { - return; - } - let actionCreator = actions.history.throttle(500); if (isCraftOverriding.current) {