fix(e5): Plex detail/UI polish from review (backdrop reset, layout, combobox, labels)
User-reported issues after the E5 build: - useCrossfadeBackdrop: the static branch (one image / crossfade off / reduced motion) painted #root but returned NO cleanup, so the backdrop persisted after leaving the page (e.g. switching modules). Every painted branch now returns clear() so unmount always resets the default backdrop. - scheduler: give the tmdb_enrich job a proper label + description (was the raw "tmdb_enrich" id) in EN/HU. - CastStrip: cap crew names to ONE line (truncate) so the row of circular photos sits on one baseline instead of going wavy on 2-line names. - PlexInfo: lay Details / Keywords / Crew out as side-by-side boxes (items-start grid) instead of full-width stacked panels with dead space; narrower Crew grid for the boxed width; each panel independently hideable from the customize menu (new Details/Keywords/Crew toggles). Tighter vertical spacing. - MultiSelectChips: reshape the trigger from a "+Add" button into an Overseerr-style combi input — removable chips inside a typeable field that filters the checklist, opening on focus (backspace removes the last chip). - Discover / person rails: reduce the vertical gap between rails.
This commit is contained in:
@@ -125,7 +125,7 @@ export function useCrossfadeBackdrop(
|
||||
const pool = key ? key.split("|") : [];
|
||||
if (!enabled || pool.length === 0) {
|
||||
clear();
|
||||
return;
|
||||
return clear; // and clear again on unmount / dep-change (idempotent)
|
||||
}
|
||||
paint(pool[0]!);
|
||||
|
||||
@@ -133,7 +133,9 @@ export function useCrossfadeBackdrop(
|
||||
typeof window !== "undefined" &&
|
||||
typeof window.matchMedia === "function" &&
|
||||
window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
||||
if (!animate || reduce || pool.length < 2) return; // static: first image only
|
||||
// Static case (one image / crossfade off / reduced motion): still MUST clear on unmount — otherwise
|
||||
// #root keeps the painted backdrop after leaving the page (e.g. switching to another module).
|
||||
if (!animate || reduce || pool.length < 2) return clear;
|
||||
|
||||
const layer = document.createElement("div");
|
||||
Object.assign(layer.style, {
|
||||
|
||||
Reference in New Issue
Block a user