From 44b3c8c30cd71969b745fc2b7a3dcb03a34202ad Mon Sep 17 00:00:00 2001 From: Tobias Andersen Date: Fri, 27 Oct 2017 17:52:52 +0200 Subject: [PATCH] fix broken onSelect event (#1309) * fix broken onSelect event * Update after.js --- packages/slate-react/src/plugins/after.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/slate-react/src/plugins/after.js b/packages/slate-react/src/plugins/after.js index f1d4f5bf8..f5ee10dd2 100644 --- a/packages/slate-react/src/plugins/after.js +++ b/packages/slate-react/src/plugins/after.js @@ -368,6 +368,20 @@ function AfterPlugin() { if (type == 'node' && Inline.isInline(node)) { change.insertInline(node).removeNodeByKey(node.key) } + + // COMPAT: React's onSelect event breaks after an onDrop event + // has fired in a node: https://github.com/facebook/react/issues/11379. + // Until this is fixed in React, we dispatch a mouseup event on that + // DOM node, since that will make it go back to normal. + const node = document.getNode(target.focusKey) + const el = findDOMNode(node) + if (!el) return + + el.dispatchEvent(new MouseEvent('mouseup', { + view: window, + bubbles: true, + cancelable: true + })) } /**