Fix invalid warning when using multiple Popover.Button
components inside a Popover.Panel
#2333
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 PR fixes an incorrect warning that complained about using multiple
Popover.Button
components. However this is valid inside thePopover.Panel
itself, just not thePopover
.Also added a few tests to make sure we don't regress on this again.
This popped up again because we were checking the
panelId
to make sure that we are in the correctPopover.Panel
. However, thepanelId
is set when thePopover.Panel
is rendered and it is registered in auseEffect
. This is all fine-ish, however this causes a "delay" in the value being ready.Combine this with wrapping the
Panel
inside aTransition
component and the delay causes even more issues.To fix this, we reset the
PopoverPanelContext
with anull
value. That way thePopover
itself will always reset it. This means that the moment we are in a panel, that we are always in the nearest panel. If thePopover
components are nested, the nestedPopover
would reset the value of the parentPopover.Panel
.