From 9c91eb5d22b63c7761c133ae3e6e20f1bf8502e2 Mon Sep 17 00:00:00 2001 From: npeter83 Date: Sat, 26 Sep 2026 07:21:21 +0200 Subject: [PATCH] feat(design): a library row keeps Share (the link copy) in sight, ahead of save (E28 S3e3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The owner's call: sharing a download's link is the library's main errand, more important than saving the file, so it does not hide in the row's "…". Manage sharing stays in the menu. The "…" tests press as a mouse, so a stray long-press timer no longer fires after teardown. --- docs/DESIGN.md | 7 +++-- .../DownloadCenter.menu.dom.test.tsx | 26 +++++++++++++---- frontend/src/components/DownloadCenter.tsx | 5 ++++ .../NotificationsPanel.menu.dom.test.tsx | 4 +-- .../PlexPlaylistView.menu.dom.test.tsx | 2 +- .../src/components/VideoMenu.dom.test.tsx | 4 +-- .../src/components/useDownloadActions.tsx | 29 ++++++++++++------- 7 files changed, 54 insertions(+), 23 deletions(-) diff --git a/docs/DESIGN.md b/docs/DESIGN.md index e8d32dee..f16c47bf 100644 --- a/docs/DESIGN.md +++ b/docs/DESIGN.md @@ -289,8 +289,9 @@ Which actions are visible and which live in a menu. (a title's is its `usePlexCardActions` list plus the removal); removals take the same undo toast, `j`/`k` walk the visible rows and Delete removes the walked one; its rename and delete sit in the header's "…". A toast that carries an action lives at least 8 s, whatever the toast setting. A - download row keeps play (pause / resume / retry in the queue) and the save link, and ends in its - "…" (`useDownloadActions`: the editors, sharing, re-download, the copies, cancel / delete / remove + download row keeps play (pause / resume / retry in the queue) and the save link, a library row also + Share (the link copy, ahead of save), and ends in its "…" (`useDownloadActions`: the editors, + managing the shares, re-download, the copies, cancel / delete / remove behind their confirms); a link inside a row keeps the browser's own right-click menu. A notification row keeps its link and its unread mark, shows its dismiss on hover (in the "…" on touch), and its "…" holds find / undo for an activity notice. The notification center's band keeps Mark all read @@ -436,6 +437,6 @@ Wherever there is text, the user can select it and copy it, and no click action | 2026-09-26 | Plex actions built (C1) | One list per Plex title (play/open, watched, add to playlist, media info, copy title, pin); the poster keeps watched / add / "…" on its picture on hover; seasons get open / watched / add / copy | The hover ⓘ, the pin-only menu, an episode's add button at rest, a collection's "Remove" X on the card | The same door as a video's; the collection grid goes to two columns on a phone so the touch "…" leaves the title its line | | 2026-09-26 | Playlist actions built (C1) | A playlist row's "…" (play, pin, copy title / link, move, order, remove), Delete + an undo toast; one list per playlist (rename, pin, YouTube open / push / revert, delete) from its rail row and its header's "…" | The row's X column and its confirm; the header's pencil, YouTube link, push, revert and trash buttons | Remove is reversible, so it needs no confirm; the header keeps Play all; on a phone the table drops "#" and Channel so the title keeps a width | | 2026-09-26 | Channel + Plex list actions (C1) | A channel row's "…" (open, pin, YouTube, copy, full history, hide + undo, unsubscribe); a Plex playlist's title / show / season "…", Delete + undo; its header's "…" (rename, delete); an action toast lasts ≥ 8 s | The channel row's full-history, hide and unsubscribe buttons; the Plex list's red X on every row, show and season; the header's pencil and trash | Hiding and removing are reversible, so they need no confirm and the undo needs time; unsubscribe and deleting a playlist keep theirs | -| 2026-09-26 | Download / notification / Scheduler actions (C1) | A download row's "…" (play, save, edit, details, re-download, share, manage sharing, copies, cancel / delete / remove); a notification row's "…" and hover dismiss; the inbox band's and the Scheduler strip's "…" | The download row's six rare buttons and its cancel / delete / remove; the source link's copy button; an activity notice's Find / Undo links; the band's Clear everything; the strip's Purge discovery | The destructive rows keep their confirm, and Clear everything gains one; a row link keeps the browser's own menu; Find in feed drops the tag / search / age filters that could hide its video | +| 2026-09-26 | Download / notification / Scheduler actions (C1) | A download row's "…" (play, share, save, edit, details, re-download, manage sharing, copies, cancel / delete / remove); a library row's Share stays in sight, ahead of save; a notification row's "…" and hover dismiss; the inbox band's and the Scheduler strip's "…" | The download row's five rare buttons and its cancel / delete / remove; the source link's copy button; an activity notice's Find / Undo links; the band's Clear everything; the strip's Purge discovery | The destructive rows keep their confirm, and Clear everything gains one; a row link keeps the browser's own menu; Find in feed drops the tag / search / age filters that could hide its video | | 2026-09-24 | Chip family | One `Chip` (filter / token / tag / suggest / ghost) + `DismissibleChip`; nothing under 24; the lint rule "no raw `