From 7083bd2af48a9992c327c5d904d2243747cb7d66 Mon Sep 17 00:00:00 2001 From: 4gray Date: Wed, 20 May 2026 15:55:06 +0200 Subject: [PATCH] fix(shell): keep Add Playlist reachable on Settings; fix dashboard e2e MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two Electron E2E regressions from this branch's redesigns: 1. Hiding the playlist switcher on /settings (a playlist-scoped control) also hid the global "Add playlist" button, which lives in the same header-actions block. A user configuring Settings before importing their first source had no way to add a playlist — and the settings / playlist-switcher E2E suites, which add a portal right after saving a setting, timed out waiting for the button. The Add Playlist button is a global action, so it now stays visible on Settings; only the per-playlist context shortcut and bulk actions are hidden there. 2. dashboard-activation.e2e.ts asserted on `dashboard-global-favorites- rail`, the mixed Favorites rail removed earlier in this branch. The test now targets the v0.22 rails: live favorites resolve through the favorites-first `dashboard-live-recent-rail`, and the played movie / series resolve through `dashboard-continue-watching-rail` (renamed from `dashboard-recently-watched-rail`). The movie-from-favorites assertion was dropped — that dashboard surface no longer exists; the favorites collection still has its own page-level coverage. Verified locally: dashboard-activation, settings, and playlist-switcher E2E specs all pass. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../src/dashboard-activation.e2e.ts | 35 ++++++++++--------- .../workspace-shell-header.component.html | 31 +++++++++------- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/apps/electron-backend-e2e/src/dashboard-activation.e2e.ts b/apps/electron-backend-e2e/src/dashboard-activation.e2e.ts index f1d23c113..bf8e7c139 100644 --- a/apps/electron-backend-e2e/src/dashboard-activation.e2e.ts +++ b/apps/electron-backend-e2e/src/dashboard-activation.e2e.ts @@ -85,10 +85,17 @@ test.describe('Dashboard Activation', () => { await goToDashboard(app.mainWindow); - await expectDashboardRail(app.mainWindow, 'dashboard-global-favorites-rail'); + // v0.22 dashboard: the mixed Global Favorites rail was removed. + // Favorited live channels are promoted into the favorites-first + // Live rail; clicking one still opens the Xtream favorites + // collection with the channel playing. + await expectDashboardRail( + app.mainWindow, + 'dashboard-live-recent-rail' + ); await dashboardRailCardByTitle( app.mainWindow, - 'dashboard-global-favorites-rail', + 'dashboard-live-recent-rail', liveTitle ).click(); await app.mainWindow.waitForURL( @@ -108,22 +115,16 @@ test.describe('Dashboard Activation', () => { await app.mainWindow.goBack(); await app.mainWindow.waitForURL(/\/workspace\/dashboard$/); + // Movies and series that were played land in the Continue + // Watching rail (formerly "recently-watched"); clicking a card + // opens it inline in the global-recent collection detail view. + await expectDashboardRail( + app.mainWindow, + 'dashboard-continue-watching-rail' + ); await dashboardRailCardByTitle( app.mainWindow, - 'dashboard-global-favorites-rail', - movieTitle - ).click(); - await expectInlineCollectionDetail(app.mainWindow, { - pathname: /\/workspace\/global-favorites$/, - title: movieTitle, - }); - - await goBackFromDetail(app.mainWindow); - await expectPathname(app.mainWindow, /\/workspace\/dashboard$/); - - await dashboardRailCardByTitle( - app.mainWindow, - 'dashboard-recently-watched-rail', + 'dashboard-continue-watching-rail', movieTitle ).click(); await expectInlineCollectionDetail(app.mainWindow, { @@ -136,7 +137,7 @@ test.describe('Dashboard Activation', () => { await dashboardRailCardByTitle( app.mainWindow, - 'dashboard-recently-watched-rail', + 'dashboard-continue-watching-rail', seriesTitle ).click(); await expectInlineCollectionDetail(app.mainWindow, { diff --git a/libs/workspace/shell/feature/src/lib/workspace-shell/components/workspace-shell-header/workspace-shell-header.component.html b/libs/workspace/shell/feature/src/lib/workspace-shell/components/workspace-shell-header/workspace-shell-header.component.html index ed8593c74..5624c29bc 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-shell/components/workspace-shell-header/workspace-shell-header.component.html +++ b/libs/workspace/shell/feature/src/lib/workspace-shell/components/workspace-shell-header/workspace-shell-header.component.html @@ -59,17 +59,22 @@ } - @if (!isSettingsRoute()) { -
- + +
+ + @if (!isSettingsRoute()) { @if (headerShortcut(); as action) { } -
- } + } +
@if (isElectron()) {