[Popover] fix scrolling position reseted on re-render #11961
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.
WHY are these changes introduced?
Fixes #11960
WHAT is this pull request doing?
As Popover component re-renders which cause the desiredHeight reseted to 0 and back to expected value. This seems to work fine if the popover's content is small without overflow. Yet, it creates an issue when there is a scrolling position in place. We can fix it by storing the last computed value and reuse it in order to avoid scrolling position resettled to 0
How to 🎩
Set up storybook as per this sandbox - https://codesandbox.io/p/sandbox/amazing-paper-qrv23n
Open the sample popover component, then scroll to bottom and click on the bottom button to re-render the component. The scroll position should remain intact without being reseted to 0
Before:
Popover.Before.mov
After:
Popover.After.mov
🖥 Local development instructions
🗒 General tophatting guidelines
📄 Changelog guidelines
🎩 checklist
README.md
with documentation changes