Update caption UI when element caption
property changes
#3287
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.
Currently, the caption plugin is using an internal React state variable as the source of truth for the caption value. While it is updating the Slate element's
caption
property when the caption value changes, it is only reading the elementcaption
property to set the initial value of the aforementioned React state. So after the caption mounts, external changes to the element'scaption
property do not get reflected in the caption textarea.In my app, this bug is most apparent when using undo/redo. After typing some text into a caption textarea, the undo action will revert one character at a time in the
caption
property on the element itself, but the caption textarea will remain unchanged.This PR removes the internal React state variable and uses the element's
caption
property as the source of truth for the caption value. This change fixes the bug in my own app.