diff --git a/VERSION b/VERSION
index 449c00d..4d17807 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.34.1
\ No newline at end of file
+0.34.2
\ No newline at end of file
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() {
-
- {last ? t("settings.plexSync.lastSync", { when: last }) : t("settings.plexSync.never")}
-
-
reimport.mutate()}
- disabled={reimport.isPending}
- className="inline-flex items-center gap-1.5 px-3 py-2 rounded-xl text-sm border border-border hover:bg-card/60 disabled:opacity-50 transition shrink-0"
- >
-
- {t("settings.plexSync.importNow")}
-
+ {busy ? (
+
+
+ {t("settings.plexSync.importing")}
+ ) : (
+ enabled && (
+
+
+ {last ? t("settings.plexSync.lastSync", { when: last }) : t("settings.plexSync.never")}
+
+
reimport.mutate()}
+ className="inline-flex items-center gap-1.5 px-3 py-2 rounded-xl text-sm border border-border hover:bg-card/60 transition shrink-0"
+ >
+
+ {t("settings.plexSync.importNow")}
+
+
+ )
)}
);
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",
diff --git a/frontend/src/lib/releaseNotes.ts b/frontend/src/lib/releaseNotes.ts
index 0717f66..80b40b1 100644
--- a/frontend/src/lib/releaseNotes.ts
+++ b/frontend/src/lib/releaseNotes.ts
@@ -14,6 +14,14 @@ export interface ReleaseEntry {
}
export const RELEASE_NOTES: ReleaseEntry[] = [
+ {
+ version: "0.34.2",
+ date: "2026-07-09",
+ summary: "Polish: the Plex watch-sync switch now responds instantly.",
+ fixes: [
+ "The Plex watch-sync switch now flips the moment you click it and shows an \"Importing…\" indicator while it works, instead of appearing to do nothing until the import finished.",
+ ],
+ },
{
version: "0.34.1",
date: "2026-07-09",