fix(notifications): a notice value is no plain string, so a translated name cannot freeze in one language
A name goes in as raw(), a translated word as its own msg(): tsc now lists every value, and the ones that froze are said when shown — Watch later and an untitled channel in the pin and channel notices, a Plex season's name in its removal toast (a new seasonTitleText, which seasonTitle says).
This commit is contained in:
@@ -3,6 +3,7 @@ import { REDUCED_MOTION, useMediaQuery } from "./useMediaQuery";
|
||||
import { usePref, useSavePref } from "./usePref";
|
||||
import type { TFunction } from "i18next";
|
||||
import type { PlexCard, PlexTmdb } from "./api";
|
||||
import { msg, raw, sayNotif, type NotifText } from "./notifications";
|
||||
|
||||
// The non-component half of the shared Plex "detail page" UI (see plexDetailUi): the per-user display
|
||||
// prefs, the TMDB backdrop URL, the crossfading art backdrop hook and the episode label. Split out so
|
||||
@@ -241,9 +242,17 @@ export function seasonTitle(
|
||||
se: { title?: string | null; season_number?: number | null },
|
||||
t: TFunction,
|
||||
): string {
|
||||
return sayNotif(seasonTitleText(se), t);
|
||||
}
|
||||
|
||||
/** The season's name as a notice keeps it: said in the reader's language each time it is shown. */
|
||||
export function seasonTitleText(se: {
|
||||
title?: string | null;
|
||||
season_number?: number | null;
|
||||
}): NotifText {
|
||||
const n = se.season_number;
|
||||
if (se.title && !GENERIC_SEASON.test(se.title.trim())) return se.title;
|
||||
if (n === 0) return t("plex.specials");
|
||||
if (n != null) return t("plex.seasonTitle", { n });
|
||||
return se.title || t("plex.playlist.seasonUnknown");
|
||||
if (se.title && !GENERIC_SEASON.test(se.title.trim())) return raw(se.title);
|
||||
if (n === 0) return msg("plex.specials");
|
||||
if (n != null) return msg("plex.seasonTitle", { n });
|
||||
return se.title ? raw(se.title) : msg("plex.playlist.seasonUnknown");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user