From 73a99358a2a042158c28c6ba11007c963e440b4a Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Mon, 6 Jul 2026 15:16:06 -0400 Subject: [PATCH] =?UTF-8?q?playlists(#37):=20profile-modal=20"Playlists"?= =?UTF-8?q?=20tab=20=E2=80=94=20rename=20/=20delete=20/=20reorder=20/=20re?= =?UTF-8?q?move?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A central management surface, a sibling tab to "My Videos" (gated by FEATURE_PLAYLISTS — hidden when off). - components/profile-modal.html: "Playlists" nav item + #profilePanePlaylists. - js/ui/profileModal/ProfilePlaylistsController.js: lists the user's playlists (incl. empty) with a collapsible row each — Rename, Delete, and an expand to a video sublist with ↑/↓ reorder and Remove. Fetches the referenced creators' videos so the sublist shows real titles/thumbnails. Edits are optimistic and re-sync on failure; publishes via the facade; dispatches bitvid:playlists-changed so the channel section + this pane stay in sync. - profileModalController.js: instantiate + bind nav/pane + cache DOM + register listeners + selectPane("playlists") refresh; hide the tab when the flag is off. - promptDialog.js: showTextPrompt (plain text prompt) for rename. - playlistFacade.js: deletePlaylist — NIP-09 kind-5 (a + e refs) plus an empty republish so kind-5-ignoring readers also drop it. - tailwind.source.css: .playlist-row* styles (token-only). Lint + build clean; profile-modal-controller tests 26/26. Co-Authored-By: Claude Opus 4.8 --- components/profile-modal.html | 83 ++++ css/tailwind.source.css | 92 ++++ js/playlists/playlistFacade.js | 50 ++ .../ProfilePlaylistsController.js | 430 ++++++++++++++++++ js/ui/profileModalController.js | 15 + js/ui/promptDialog.js | 107 +++++ 6 files changed, 777 insertions(+) create mode 100644 js/ui/profileModal/ProfilePlaylistsController.js diff --git a/components/profile-modal.html b/components/profile-modal.html index a4ee0f30..dcf9b2c7 100644 --- a/components/profile-modal.html +++ b/components/profile-modal.html @@ -211,6 +211,28 @@ My Videos + + + + + + +