fix(collections): one confirmed Clear recently viewed action (#1865)

A playlist's own recently viewed page (/workspace/<provider>/<id>/recent,
opened from the dashboard's recently viewed rails) showed two clear buttons:
the page's "Clear recently viewed <type>", which confirms through
createClearCollectionAction, and a header delete_sweep button that cleared
every tab of the playlist at once without asking. Remove the header bulk
action end to end, and the unreachable, unconfirmed clear button of the M3U
channel list's recent view, so every clear goes through
createClearCollectionAction. Drop the two i18n keys only those buttons used.

E2E: a shared helper asserts one clear control per page and one confirmation
per press; the M3U, Xtream and Stalker recent tests cancel first (rows stay),
then clear once on the playlist's own recently viewed page.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Opus 5.5 authored and GitHub committed 2026-10-10 09:45:21 +02:00
1 parent 015ea203b7
commit 8fabb88106
39 files changed
+261 -327

No files matched your search

@@ -842,6 +842,13 @@ per-theme tokens in `apps/web/src/_settings-theme.scss`.
is "Cancel …", pass `cancelLabel` "Close" so the two buttons do not read
alike. `theme-tokens.e2e.ts` checks the label and the error fill in both
themes.
- **One control per action.** A page offers one control for a destructive
action. Clearing a favorites or recently viewed tab goes through
`createClearCollectionAction` (`unified-collection-clear-action.ts` in
`portal/shared/ui`), from the collection page's button and from the command
palette alike; the shell
header does not repeat it. `recent.e2e.ts` checks the single control and
the single confirmation on M3U, Xtream and Stalker recently viewed pages.
## Forms
+2 -1
View File
@@ -139,7 +139,8 @@ services:
3. `WorkspaceShellSearchSyncService` owns the search query signals, debounced
application, provider-store synchronization, and query-param sync.
4. `WorkspaceShellHeaderService` owns playlist title/subtitle, account/info
actions, refresh action state, and recent-items bulk cleanup.
actions, and refresh action state. It has no clear action: clearing
recently viewed or favorites belongs to the collection page.
5. `WorkspaceShellCommandPaletteService` owns command-palette dialog lifecycle
and recent-command recording.
6. `WorkspaceShellXtreamImportService` owns Xtream import/refresh overlay