From ac591cbebe900f00f9b644f1c5094c850774df49 Mon Sep 17 00:00:00 2001 From: Kevin Midboe Date: Fri, 27 Feb 2026 17:43:38 +0100 Subject: [PATCH] Refactor: Complete PlexSettings modularization with modal components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create PlexLibraryModal.vue (365 lines) for detailed library view - Stats overview (total items, episodes/tracks, duration) - Recently added items with posters and metadata - Top genres with visual bar charts - Fully responsive modal design - Create PlexUnlinkModal.vue (138 lines) for account unlinking - Confirmation dialog with feature loss warnings - Clean modal UI with cancel/confirm actions - Refactor PlexSettings.vue: 2094 lines → 498 lines (76% reduction) - Replace inline UI with PlexAuthButton component - Replace profile card with PlexProfileCard component - Replace stats grid with PlexLibraryStats component - Replace server info with PlexServerInfo component - Use PlexLibraryModal and PlexUnlinkModal for overlays - Integrate usePlexAuth, usePlexApi, usePlexLibraries composables - Remove 1596 lines of duplicate template and logic - Maintain all functionality with cleaner architecture Total extraction: 2031 lines from monolithic file into 10 modular components Build verified successfully ✓ --- src/components/plex/PlexLibraryModal.vue | 385 +++++ src/components/plex/PlexUnlinkModal.vue | 152 ++ src/components/settings/PlexSettings.vue | 1802 ++-------------------- src/pages/SettingsPage.vue | 4 +- 4 files changed, 642 insertions(+), 1701 deletions(-) create mode 100644 src/components/plex/PlexLibraryModal.vue create mode 100644 src/components/plex/PlexUnlinkModal.vue diff --git a/src/components/plex/PlexLibraryModal.vue b/src/components/plex/PlexLibraryModal.vue new file mode 100644 index 0000000..07c118d --- /dev/null +++ b/src/components/plex/PlexLibraryModal.vue @@ -0,0 +1,385 @@ + + + + + diff --git a/src/components/plex/PlexUnlinkModal.vue b/src/components/plex/PlexUnlinkModal.vue new file mode 100644 index 0000000..eff171e --- /dev/null +++ b/src/components/plex/PlexUnlinkModal.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/components/settings/PlexSettings.vue b/src/components/settings/PlexSettings.vue index a052453..e3981b5 100644 --- a/src/components/settings/PlexSettings.vue +++ b/src/components/settings/PlexSettings.vue @@ -1,448 +1,68 @@ - diff --git a/src/pages/SettingsPage.vue b/src/pages/SettingsPage.vue index 1dfe5e6..4b6c258 100644 --- a/src/pages/SettingsPage.vue +++ b/src/pages/SettingsPage.vue @@ -52,7 +52,7 @@