Take snapshot on comp start & restore on comp end if needed #94
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When the DOM is modified from under react, it can sometimes blow up with an error like
Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
when it tries to unmount components whose nodes are no longer present. It isn't sufficient to replace it with an identical node, it needs to be the same one (seems like react stores references somewhere).To solve this, we take a snapshot of the DOM on compositionstart & store references to all the nodes, then restore the DOM to that state on compositionends that change the text so that react sees what it expects after we update the state and it rerenders.
Based on See ianstormtaylor/slate#2565