fix(live-tv): honour Cmd/Ctrl+B on collection pages and hide the header rail toggle on phones

Codex review follow-ups on #1555:

- The hidden-list state advertises Cmd/Ctrl+B, but the favorites/recent
  collection page had no handler; only the routed M3U/Xtream/Stalker live
  layouts did. The page now toggles the collection surface while its live
  tab is on screen, with the same typing/inert guards as the other hosts.
- At the phone breakpoint the header already holds the drawer toggle,
  switcher, search and Add; the live rail is a bottom drawer with its own
  toggle there, so the header rail toggle is hidden below 640px.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Fable 5.1 committed 2026-09-06 10:37:39 +02:00
1 parent ebfab57779
commit 71e8446034
5 files changed
+108 -11

No files matched your search

+10 -3
View File
@@ -134,9 +134,7 @@ test.describe('portrait phone 375x812', () => {
// sections; now the list scrolls and ends above the footer.
const listBox = await boxOf(panel.locator('.settings-sections-list'));
const footerBox = await boxOf(footer);
expect(listBox.y + listBox.height).toBeLessThanOrEqual(
footerBox.y + 1
);
expect(listBox.y + listBox.height).toBeLessThanOrEqual(footerBox.y + 1);
// Tapping the backdrop (right of the drawer) closes it.
await page
@@ -216,7 +214,16 @@ test.describe('xtream portal routes on a phone', () => {
const sidebar = page.locator('app-live-stream-layout .sidebar');
await expect(sidebar).toBeVisible();
// The workspace header carries the live rail toggle at desktop
// width only; on the phone the rail is a bottom drawer with its own
// toggle and the header has no room for another permanent icon.
const headerRailToggle = page.locator(
'app-workspace-shell-header .header-sidebar-toggle'
);
await expect(headerRailToggle).toBeVisible();
await page.setViewportSize(LANDSCAPE_PHONE);
await expect(headerRailToggle).toBeHidden();
// The sidebar stacks at full width above the player.
await expect