Refactor onChangeEditableValue handling (version1) #12099
Closed
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.
Description
In #11861, @iseulde pointed out that ideally
RichText
should not 'know' anything about custom formats. So the handling ofonChangeEditableValue
should move to therich-text
package. Specifically thecreate
function.This is an attempt to execute this refactor. It works functionally, but the implementation has a ton of duplication. The problem I was trying to solve was that
toFormat
strips the relevant information we need when building the list of formats for the value. So to circumvent this, I build another array withshadowFormats
that contains all formats that are actually in the DOM.This
shadowFormats
array is then send toonChangeEditableValue
.Note: The actual
onChangeEditableValue
inRichText
needs to move too, but I wanted to have these versions out asap to address the complexity and moving that function itself over is trivial so can be done after choosing how to refactor.How has this been tested?
The e2e tests still pass, I have tested that annotations still work.
Screenshots
Types of changes
Checklist: