fix(ui): R3 S1 review fixes — don't blank data on transient refetch errors

- The honest-state branch now guards on `isError && !data`, so a background/window-focus refetch
  failure keeps already-visible content instead of replacing the list with a full error screen
  (regression the bare `isError` introduced). Applied to AuditLog, Channels, ChannelDiscovery,
  PlexBrowse, PlexPlaylistView, Messages(people), Feed — matching the guard already used in
  Messages(conversations)/NotificationsPanel/Scheduler.
- Drop the unused DataTable loading/error/onRetry props (every table page uses the outer
  StateMessage branch, not the props) — reverts DataTable to its simple empty block.
- StateMessage announces errors with role=alert/aria-live=assertive (was polite for all tones).
- Remove the now-unused common.empty string (en+hu), left over from the removed QueryState render-prop.
This commit is contained in:
2026-07-22 04:14:46 +02:00
parent d9a08892a5
commit a393fd2fb1
11 changed files with 19 additions and 35 deletions
+1 -1
View File
@@ -224,7 +224,7 @@ export default function ChannelDiscovery({
</div>
</PageToolbar>
<div className="px-4 pb-4 max-w-[96rem] mx-auto">
{query.isError ? (
{query.isError && !query.data ? (
<StateMessage tone="error" onRetry={() => query.refetch()}>
{t("common.loadError")}
</StateMessage>