fix(sidebar): keep the peeked sidebar open while the ProjectSwitcher menu is open#3484
Open
aleexzxzxzx wants to merge 1 commit into
Open
Conversation
… is open With hover-peek active, opening the ProjectSwitcher dropdown and then moving the pointer off the panel collapsed the sidebar while the menu (rendered in a portal anchored to its trigger) stayed open, leaving it floating and chasing its vanished anchor. Add a "hold" to sidebarPeekStore: while a sidebar-spawned menu is open, endSidebarPeek is a no-op, so the peek stays until the menu closes. The ProjectSwitcher holds the peek on open and releases it on close (and on unmount). Hover behaviour is unchanged when no menu is open. Adds a unit test for the hold.
tatoalo
approved these changes
Jul 16, 2026
Contributor
|
Thanks! @aleexzxzxzx could you sign your commits? we are enforcing signed commits, sorry we should make that clearer 🫠 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
Closes #3483
The collapsed-sidebar hover-peek (#3367) closes the peek on any directional exit,
including while the ProjectSwitcher menu is open. That menu renders in a portal
anchored to its trigger inside the sidebar, so when the peek collapses the menu is
left floating over the content, chasing its vanished anchor. Its submenus
(
Project,Organization) fly out to the right, pastPEEK_CLOSE_MARGIN, sohovering them triggers the same close.
Changes
Add a "hold" to
sidebarPeekStore: while a sidebar-spawned menu is open,endSidebarPeekis a no-op, so a pointer that leaves the panel can't collapse thepeek and strand the open menu's anchor.
holdSidebarPeek()/releaseSidebarPeek()guard a module-levelheldflag;endSidebarPeekearly-returns while held, andcancelSidebarPeekclears it.ProjectSwitcherholds on open and releases on close (and on unmount) viaonOpenChange.collapses on the next directional exit as before.
Before / after
video.mp4
How did you test this?
sidebarPeekStore.test.ts(4 cases: hold blocksendSidebarPeek,release restores it, hold cancels a pending hide,
cancelSidebarPeekclears thehold).
pnpm --filter @posthog/ui testpasses.pnpm --filter @posthog/ui typecheckand Biome pass.the cursor into the content and onto the submenus (stays open); close the menu, then
move the cursor out (collapses normally).