// desidium-model.jsx — full talent profile page, exported to window const { useEffect: useEffectMD } = React; // Privacy-enhanced YouTube embed (16:9). Empty `id` renders a labelled placeholder frame. function YouTubePlayer({ id, title, placeholder }) { if (!id) return
{placeholder}
; const src = "https://www.youtube-nocookie.com/embed/" + encodeURIComponent(id) + "?rel=0&modestbranding=1"; return (
); } const SOCIAL_ICONS = { youtube: , instagram: , tiktok: , }; const SOCIAL_LABELS = { youtube: "YouTube", instagram: "Instagram", tiktok: "TikTok" }; // Row of external profile links; keys with an empty URL are skipped. function SocialLinks({ social, name, lang, motion }) { const keys = ["youtube", "instagram", "tiktok"].filter((k) => social && social[k]); if (!keys.length) return null; return (
{L(I18N.model.follow, lang)}
{keys.map((k) => ( {SOCIAL_ICONS[k]} {SOCIAL_LABELS[k]} ))}
); } function ModelDetail({ model, lang, motion, onBack, onNav, goContact }) { const m = I18N.model; useEffectMD(() => { window.scrollTo(0, 0); }, [model.id]); const divName = model.div === "twin" ? L(m.twinName, lang) : L(m.soulName, lang); const idx = MODELS.findIndex((x) => x.id === model.id); const next = MODELS[(idx + 1) % MODELS.length]; const ph = (model.photos || []); const themeBase = (window.desidiumWp && window.desidiumWp.themeUri) || ""; return (
{/* HERO */}
{model.hero ? (
{model.name
) : ( )}
{divName} · {L(model.cat, lang)}

{model.name}

{L(model.tagline, lang)}

{model.langs.join(" · ")} {L(model.avail, lang)}
{/* ABOUT / DESCRIPTION + PRESENTATION VIDEO + SOCIAL */}
{L(m.about, lang)}

{L(model.desc, lang)}

{L(m.s_niche, lang)}
{L(model.niche, lang)}
{L(m.video, lang)}
{/* GALLERY */}
{L(m.gallery, lang)}
{ph.map((p, i) => ( ))}
{/* SPECS */}
{L(m.specs, lang)}
{[[m.s_division, divName],[m.s_niche, L(model.niche,lang)],[m.s_langs, model.langs.join(" · ")],[m.s_avail, L(model.avail,lang)]].map(([k,v],i)=>(
{L(k,lang)}
{v}
))}
{/* CTA */}
{L(m.cta_label, lang)}

{L(m.cta_pre, lang)} {model.name}.

{L(m.cta_sub, lang)}

); } Object.assign(window, { ModelDetail, YouTubePlayer, SocialLinks });