mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-09 01:16:15 -08:00
The detail Back lane from #1763 reserved a 72px column beside a sticky arrow on every detail page. Beside the rail and the category panel that is about 8% of the pane, and in watch state the player is width-bound, so it also cost video height. A single button in an empty full-height column read as a layout fault. The shell now registers its Back action with WorkspaceBackNavigationService (a stack where the newest registration wins and each release removes only its own target), and the workspace header renders it in its leading slot, where browsers, desktop apps and Material's top app bar keep navigation. Detail columns get their full width back; the lane, the phone bar and their ResizeObserver are gone. Escape behaviour is unchanged, and Escape on the focused header Back keeps the advertised shortcut. At phone width Back takes the context drawer toggle's slot. The rail brand mark is removed: it linked to the page the first workspace link opens, and the phone layout already hid it for that reason. The web detail-scroll E2E now waits for the loaded heading: PageDown sent to the scrollable loading skeleton was lost when the loaded shell replaced it (also flaky on master). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>