(fix) O3-3350: Resolve dropdown re-rendering bug in the tablet viewport #313
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.
Requirements
Summary
This PR addresses a performance issue with the Dropdown component. When launching a Clinical form in the tablet viewport and clicking on a dropdown field, the Dropdown component re-renders excessively, causing the entire form UI to freeze. To mitigate this, I've updated the useEffect hook's dependency array and cached the
handleChange
function definition to ensure stability between re-renders. I need to investigate further to understand the root cause, although these two measures seem to resolve the bug.Screenshots
Bug
dropdown-rerendering-bug.mp4
Fix
dropdown-re-rendering-fix.mp4
Related Issue
O3-3350
Other
We should enable the
rules-of-hooks/exhaustive-deps
rule in our ESLint config and set it toerror
to catch similar bugs in the future.