fix(ui): E31 S2 — the tab names the object, the channel header wraps, the player fits a short window

- The browser tab names the place and the object: PageHeading reports the
  view's own title (lib/documentTitle), so a channel, playlist or any Plex
  view reads "<object> · <module> · Siftlode" however it was opened; the
  Feed is named too; a season adds its show (tabTitle).
- The channel page's tab + action row wraps and lets the tag lane fold into
  "+N": at 1024 it ran past the edge and the page scrolled sideways.
- The YouTube player card's width is capped from the window height less the
  chrome measured under the video: at 133% zoom (685px) it cut its channel row.
- Plex certificate words (Not Rated, Approved, Passed) are named through the
  vocabulary on the info badge, show page, collection, filter and chips.
- DESIGN.md: the zoom target is 125% and 133%, not 200% (decision log).
This commit is contained in:
2026-10-01 21:17:20 +02:00
parent 2543d44860
commit ec22eefd31
20 changed files with 265 additions and 46 deletions
+9
View File
@@ -18,6 +18,10 @@ describe("a vocabulary word", () => {
["autoTag", "Hungarian", "Magyar"],
["profile", "Video only (MP4)", "Csak videó (MP4)"],
["topic", "Lifestyle_(sociology)", "Életmód"],
// E31 S1: Plex's certificate words came through in English on the info badge and the filter.
["certificate", "Not Rated", "Nincs besorolva"],
["certificate", "Approved", "Jóváhagyva"],
["certificate", "Passed", "Engedélyezve"],
] as const)("%s %j reads %j in Hungarian", (group, word, shown) => {
expect(vocab(hu, group, word)).toBe(shown);
});
@@ -27,6 +31,11 @@ describe("a vocabulary word", () => {
expect(vocab(en, "topic", "Pop_music", "Pop music")).toBe("Pop music");
});
it("a certificate code reads the same in every language", () => {
expect(vocab(hu, "certificate", "PG-13")).toBe("PG-13");
expect(vocab(hu, "certificate", "TV-MA")).toBe("TV-MA");
});
it("an unknown word is shown, not hidden or keyed", () => {
expect(vocab(hu, "crewJob", "Gaffer")).toBe("Gaffer");
expect(vocab(hu, "topic", "Knitting_(craft)", "Knitting (craft)")).toBe("Knitting (craft)");