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:
@@ -14,7 +14,7 @@
|
||||
// names) — an email in a query string lands in every reverse-proxy access log. Plain status flags
|
||||
// with nothing personal in them (login, deleted, account) ride the query string.
|
||||
|
||||
import type { NotifLevel } from "./notifications";
|
||||
import { raw, type NotifLevel, type NotifValue } from "./notifications";
|
||||
import { refusalReason } from "./api/core";
|
||||
import { hrefHere } from "./urlState";
|
||||
|
||||
@@ -88,7 +88,7 @@ export function clearEntryUrl(): void {
|
||||
export interface AccountNotice {
|
||||
level: NotifLevel;
|
||||
key: string;
|
||||
values?: Record<string, string>;
|
||||
values?: Record<string, NotifValue>;
|
||||
}
|
||||
|
||||
/** What the entry URL says to the account signed in here about a switch of account. A sign-in as
|
||||
@@ -110,7 +110,7 @@ export function accountSwitchNotice(
|
||||
const access = hash.get("access");
|
||||
const email = hash.get("linked") || hash.get("email");
|
||||
if (access === "requested" && email)
|
||||
return { level: "info", key: "header.account.switchRequested", values: { email } };
|
||||
return { level: "info", key: "header.account.switchRequested", values: { email: raw(email) } };
|
||||
if (access === "requested" || access === "denied")
|
||||
return { level: "warning", key: "header.account.switchNotApproved" };
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user