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:
2026-10-01 08:31:04 +02:00
parent 6ac9ffd45e
commit 9454717f47
19 changed files with 140 additions and 45 deletions
+18 -11
View File
@@ -325,17 +325,20 @@ export function PlexPersonView({
<ClampedText
text={d.biography}
lines={8}
moreLabel={t("plex.person.more")}
lessLabel={t("plex.person.less")}
moreLabel={t("plex.textMore")}
lessLabel={t("plex.textLess")}
className="mt-4"
/>
) : bioOnItsWay ? (
<LoadingState shape="text" label={t("plex.person.bioLoading")} className="mt-4" />
) : (
bioOnItsWay && (
<LoadingState
shape="text"
label={t("plex.person.bioLoading")}
className="mt-4"
/>
// An ask that failed while the bio was on its way is said, not left looking like a
// person with no bio; the retry asks (and waits) again.
d.enriching &&
q.isError && (
<StateMessage tone="error" compact onRetry={() => q.refetch()}>
{t("plex.person.bioFailed")}
</StateMessage>
)
)}
</div>
@@ -614,9 +617,13 @@ export function PlexShowView({
</div>
)}
{show.summary && (
<p className="measure mt-3 line-clamp-5 text-sm leading-relaxed text-muted">
{show.summary}
</p>
<ClampedText
text={show.summary}
lines={5}
moreLabel={t("plex.textMore")}
lessLabel={t("plex.textLess")}
className="mt-3"
/>
)}
<div className="mt-4 flex flex-wrap gap-2">
{show.resume && (