Repository navigation
fix: keep navigation anchored after fullscreen rotation - #20
Merged
Merged
Conversation
agent-pushpinderbal
marked this pull request as ready for review
October 23, 2026 05:13
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.
After fullscreen rotation in Chrome on iPad, the visual viewport and layout viewport can disagree. The previous sidebar height correction left navigation attached to the taller layout viewport, so a real swipe could move the controls off screen. The earlier test used programmatic document scrolling and missed that behavior.
Give the app one viewport frame and one content scroller. Desktop and mobile navigation occupy grid tracks outside the scrolling content; player/history restoration, Settings tracking, Home visibility, and infinite loading use that same scroller. Remove the sidebar-only height rule and the 300ms recovery timer. Keep Chrome's browser compatibility handling at the app boundary, supplying the visible frame's height/origin and retaining the width correction demonstrated on the affected iPad. Other browsers use CSS viewport sizing.
Extend the existing fullscreen workflow with real wheel/touch input and geometry checks against the visible viewport, while retaining playback/session, zoom, portrait return, and Account interaction checks. The scrolling regression fails against unchanged main: the logo remains at 16px while the visible viewport starts at 300px. Let Playwright's isolated page fixtures handle teardown rather than replaying unrelated UI clicks after clock-controlled tests; explicit Stop/Back workflows retain their assertions. Hero pause checks record the title after the pause interaction. Desktop browser emulation does not reproduce iPad's native fullscreen host; the physical device still needs a final retest.
Validation on the latest main dependencies: