fix(frontend): Newly typed text in Input fields vanishes on scroll #8657
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.
This fixes #8625
Due to the input values are globally managed and asynchronous, the
onBlur
event was used instead ofonChange
to avoid the jumping caret problem.However, this causes issues when there could be some re-render events that still keep the input box focused, making the
onBlur
not triggered, but the input was reset. One such scenario is the scrolling (zoom-in & zoom-out of the node editor).Changes 🏗️
Introduce & use
LocalValuedInput
. Instead of using onBlur as a trigger, the component maintains its local state value to be displayed on the input box, but also calls theonChange
update on the globally managed value state, while syncing its value from the outside.Checklist 📋
For code changes:
Example test plan
For configuration changes:
.env.example
is updated or already compatible with my changesdocker-compose.yml
is updated or already compatible with my changesExamples of configuration changes