Tiptap RTE: Reduce loading layout shift #19860
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.
Description
One of the issues outlined in #19728 is the layout shift once the Tiptap RTE has loaded.
The main reason for this is that each toolbar item is an extension, which is loaded in asynchronously, and when there are numerous toolbar items, this can visually appear quite jarring.
Important
Issue #19728 should not be resolved by this, as there are other issues to investigate there.
This fix refactors how the toolbar extension items are loaded in, along with adding skeleton UI during loading, a minimum-height for the toolbar's rows and groups has also been added, so that the vertical layout shift is reduced.
How to test?
Try loading the Tiptap RTE on a document before and after this patch. Specifically notice how the toolbar items are loaded in, after the initial load, and then on subsequent loads. A good scenario is to try within a Block List element, either inline or sidebar modal, (it's quicker to see the build-up/tear-down of the RTE component).