fix(ui,i18n): E30 review round 2 — honest bio failure, a full show summary, one HU name per thing
- Person page: a bio ask that fails says so with a retry instead of reading as 'no biography'. - Show page: the summary is a ClampedText (5 lines + More), like the person and collection pages; one More/Less pair (plex.textMore/textLess) for all three. - Channels: a re-slotted row is placed in the language the server orders by (the stored preference, else English), not the UI's guess. - A skipped run's body is only the reason (its title already says skipped). - HU: Behúzási kvótatartalék; Eseménynapló ürítve / az eseménynaplót; indok; közvetlenül játszható / közvetlen közvetítés in the Plex hints. - Tests: ClampedText re-measures on a resize, the show summary clamp, serverOrderLang.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import type { QueryClient } from "@tanstack/react-query";
|
||||
import { isSupported } from "../i18n";
|
||||
import { api } from "./api";
|
||||
import { LANGUAGE_ORDERED } from "./queryKeys";
|
||||
|
||||
@@ -9,3 +10,11 @@ export async function saveLanguage(qc: QueryClient, code: string): Promise<void>
|
||||
await api.savePrefs({ language: code });
|
||||
for (const queryKey of LANGUAGE_ORDERED) void qc.invalidateQueries({ queryKey });
|
||||
}
|
||||
|
||||
/** The language the server orders this account's lists in (backend `mailtext.lang_for_user`): the
|
||||
* stored preference, else English. Not always the UI's — a browser-detected language, or one picked
|
||||
* while signed out, is never stored — so a list re-slotted here to match the server's order uses it. */
|
||||
export function serverOrderLang(preferences: Record<string, unknown> | null | undefined): string {
|
||||
const lang = preferences?.language;
|
||||
return typeof lang === "string" && isSupported(lang) ? lang : "en";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user