Mutations to respect canInsertBeforeAfter #4553
Merged
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.
We're usually very lenient when it comes to composition (as it can break easily) and we don't touch it unless it's imprescindible.
However, Mutations as they're now are breaking the
canInsert{Before/After}
rules which directly impacts things like Mentions or TabNode. This PR forbids Mutations that violate this rule and will instead fallback toinput
.The other question is whether TabNode has to implement
canInsert{Before/After}
or we can do something smarter with it.This PR also adjusts the behavior for MentionNode, which also makes me think whether this
canInsert
rule should be automatically applied when there's segmentation as I can't think why it would make sense to allow characters at the end when segmentation implies that the Node will be recreated as soon as you type on it.Fixes #4547