fix(errors,a11y): review round 1 — drop redundant onErrors, stabilize the live region

Review found my C-3.23 additions double-notified: the global error modal (api.ts req)
already surfaces 400/409/422/500 with the backend's specific message, so a caller
toast on those codes is a second, weaker surface. Only 403/404 are caller-handled and
silent — and only a YouTube WRITE action has a meaningful 403 (missing scope).

So the correct set is just the ChannelPage unsubscribe handler (a YouTube write, 403 →
"connect", matching subscribe). Reverted the redundant onErrors on block (a local DB
op, not YouTube), SettingsPanel Plex watch toggle/reimport, and the DownloadCenter job
action — the global modal already speaks for them. Removed the three now-unused keys.

Toaster: moved the polite live region onto the stable, always-mounted container (a
polite region must pre-exist to announce later insertions); error/fatal toasts keep
role="alert", which announces on insertion regardless.
This commit is contained in:
2026-07-21 23:29:51 +02:00
parent d3e466774c
commit 6ed08383e7
10 changed files with 23 additions and 20 deletions
@@ -119,7 +119,6 @@
"syncFailed": "Subscription sync failed",
"unsubscribed": "Unsubscribed from {{name}} on YouTube",
"unsubscribeFailed": "Unsubscribe failed",
"blockFailed": "Couldn't update block state",
"fullHistoryRequested": "Full history requested for {{count}} channels",
"fullHistoryFailed": "Couldn't request full history",
"needYouTube": "Connect your YouTube account to do this.",
+1 -2
View File
@@ -197,6 +197,5 @@
"source_not_ready": "The source download isn't ready to edit.",
"generic": "That edit couldn't be created."
}
},
"actionFailed": "Download action failed"
}
}
+1 -2
View File
@@ -14,8 +14,7 @@
"imported": "Imported from Plex: {{watched}} watched, {{in_progress}} in progress.",
"lastSync": "Last import: {{when}}",
"never": "Not imported yet",
"importing": "Importing your Plex watch history…",
"failed": "Plex watch sync failed"
"importing": "Importing your Plex watch history…"
},
"save": {
"saving": "Saving…",
@@ -119,7 +119,6 @@
"syncFailed": "A feliratkozások szinkronizálása sikertelen",
"unsubscribed": "Leiratkozva a(z) {{name}} csatornáról a YouTube-on",
"unsubscribeFailed": "A leiratkozás sikertelen",
"blockFailed": "A tiltás állapotát nem sikerült frissíteni",
"fullHistoryRequested": "Teljes előzmény kérve {{count}} csatornához",
"fullHistoryFailed": "Nem sikerült teljes előzményt kérni",
"needYouTube": "Ehhez csatlakoztasd a YouTube-fiókod.",
+1 -2
View File
@@ -197,6 +197,5 @@
"source_not_ready": "A forrásletöltés még nem szerkeszthető.",
"generic": "Ezt a vágást nem sikerült létrehozni."
}
},
"actionFailed": "A letöltési művelet sikertelen"
}
}
+1 -2
View File
@@ -14,8 +14,7 @@
"imported": "Importálva a Plexből: {{watched}} megnézve, {{in_progress}} folyamatban.",
"lastSync": "Utolsó import: {{when}}",
"never": "Még nincs importálva",
"importing": "Plex-előzmény importálása…",
"failed": "A Plex-megtekintés szinkron sikertelen"
"importing": "Plex-előzmény importálása…"
},
"save": {
"saving": "Mentés…",