Skip to content

Keep a game's info box on screen in a small window (LAZ-932) - #23933

Merged
r1chm8 merged 1 commit into
masterfrom
laz-932
Aug 12, 2026
Merged

Keep a game's info box on screen in a small window (LAZ-932)#23933
r1chm8 merged 1 commit into
masterfrom
laz-932

Conversation

@r1chm8

@r1chm8 r1chm8 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

The box could open beyond the left edge of the games page and be cut off there, reading as though it had gone behind the side panel.

Two things put it there, and neither was a z-index. It was portalled into the page rather than the body, and the page is overflow: hidden, so anything reaching past its edge was clipped away. Meanwhile the old overlay picked a side by comparing the tile against the midpoint of that page and then, for a left or right placement, never clamped horizontally — react-overlays only does that for top and bottom. An 800px box hung off a tile just right of centre therefore started at a negative offset, which the clip then hid. Narrowing the window took its width out of the page alone, since the spine and side panel don't shrink, so it took a small window to expose.

Hosting it on the design-system popover answers both: Floating UI portals out of any clipping ancestor and shifts the panel back into view rather than letting it overhang. The reset that follows is that the page no longer has to hand its own element and bounds down through the grid and list to be measured, and the two components no longer nudge the overlay to reposition when the game info arrives — GameInfoPopover's onChange exists only for a host that needs that, so it is now optional.

controls/OverlayTrigger stays: it is exported from the extension API, so it is not ours to remove even with no callers left in tree.

The box could open beyond the left edge of the games page and be cut off there,
reading as though it had gone behind the side panel.

Two things put it there, and neither was a z-index. It was portalled into the
page rather than the body, and the page is `overflow: hidden`, so anything
reaching past its edge was clipped away. Meanwhile the old overlay picked a side
by comparing the tile against the midpoint of that page and then, for a left or
right placement, never clamped horizontally — react-overlays only does that for
top and bottom. An 800px box hung off a tile just right of centre therefore
started at a negative offset, which the clip then hid. Narrowing the window took
its width out of the page alone, since the spine and side panel don't shrink, so
it took a small window to expose.

Hosting it on the design-system popover answers both: Floating UI portals out of
any clipping ancestor and shifts the panel back into view rather than letting it
overhang. The reset that follows is that the page no longer has to hand its own
element and bounds down through the grid and list to be measured, and the two
components no longer nudge the overlay to reposition when the game info arrives —
`GameInfoPopover`'s `onChange` exists only for a host that needs that, so it is
now optional.

`controls/OverlayTrigger` stays: it is exported from the extension API, so it is
not ours to remove even with no callers left in tree.
@r1chm8
r1chm8 requested a review from a team as a code owner August 11, 2026 15:37
@r1chm8
r1chm8 merged commit e320c35 into master Aug 12, 2026
8 checks passed
@r1chm8
r1chm8 deleted the laz-932 branch August 12, 2026 08:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants