diff --git a/frontend/src/components/SettingsPanel.tsx b/frontend/src/components/SettingsPanel.tsx index 5556a0a..986da46 100644 --- a/frontend/src/components/SettingsPanel.tsx +++ b/frontend/src/components/SettingsPanel.tsx @@ -461,6 +461,10 @@ function PlexWatchSync() { }, }); + const busy = toggle.isPending || reimport.isPending; + // Reflect the toggle's target immediately (optimistic) so the switch responds on click rather than + // only flipping once the multi-second import returns — otherwise it reads as "nothing happened". + const shown = toggle.isPending ? Boolean(toggle.variables) : enabled; const last = link.data?.last_watch_sync_at ? new Date(link.data.last_watch_sync_at).toLocaleString(i18n.language) : null; @@ -470,25 +474,31 @@ function PlexWatchSync() {

{t("settings.plexSync.intro")}

!toggle.isPending && toggle.mutate(v)} + checked={shown} + disabled={busy} + onChange={(v) => !busy && toggle.mutate(v)} /> - {enabled && ( -
-

- {last ? t("settings.plexSync.lastSync", { when: last }) : t("settings.plexSync.never")} -

- + {busy ? ( +
+ + {t("settings.plexSync.importing")}
+ ) : ( + enabled && ( +
+

+ {last ? t("settings.plexSync.lastSync", { when: last }) : t("settings.plexSync.never")} +

+ +
+ ) )} ); diff --git a/frontend/src/i18n/locales/de/settings.json b/frontend/src/i18n/locales/de/settings.json index 51dfb58..c441032 100644 --- a/frontend/src/i18n/locales/de/settings.json +++ b/frontend/src/i18n/locales/de/settings.json @@ -13,7 +13,8 @@ "importNow": "Jetzt aus Plex importieren", "imported": "Aus Plex importiert: {{watched}} gesehen, {{in_progress}} laufend.", "lastSync": "Letzter Import: {{when}}", - "never": "Noch nicht importiert" + "never": "Noch nicht importiert", + "importing": "Plex-Wiedergabeverlauf wird importiert…" }, "save": { "unsaved": "Nicht gespeicherte Änderungen", diff --git a/frontend/src/i18n/locales/en/settings.json b/frontend/src/i18n/locales/en/settings.json index 8d79214..cd9e2d2 100644 --- a/frontend/src/i18n/locales/en/settings.json +++ b/frontend/src/i18n/locales/en/settings.json @@ -13,7 +13,8 @@ "importNow": "Import from Plex now", "imported": "Imported from Plex: {{watched}} watched, {{in_progress}} in progress.", "lastSync": "Last import: {{when}}", - "never": "Not imported yet" + "never": "Not imported yet", + "importing": "Importing your Plex watch history…" }, "save": { "unsaved": "Unsaved changes", diff --git a/frontend/src/i18n/locales/hu/settings.json b/frontend/src/i18n/locales/hu/settings.json index 6d987cc..c8dea12 100644 --- a/frontend/src/i18n/locales/hu/settings.json +++ b/frontend/src/i18n/locales/hu/settings.json @@ -13,7 +13,8 @@ "importNow": "Importálás a Plexből most", "imported": "Importálva a Plexből: {{watched}} megnézve, {{in_progress}} folyamatban.", "lastSync": "Utolsó import: {{when}}", - "never": "Még nincs importálva" + "never": "Még nincs importálva", + "importing": "Plex-előzmény importálása…" }, "save": { "unsaved": "Nem mentett változások",