// ───────────────────────────────────────────────────────────── // ACCESS UI — Modal de resgate de código + botão "inserir código" // Usado quando uma seção está bloqueada. Sem login: a pessoa cola // o código que recebeu na Hotmart e a seção abre pra sempre. // ───────────────────────────────────────────────────────────── const { useState: _useStateAx } = React; // Modal central de resgate de acesso function AccessModal({ module, t, onClose, onRedeemed }) { const [code, setCode] = _useStateAx(""); const [error, setError] = _useStateAx(""); const generic = !module || module.generic; const sectionName = generic ? "Inserir código" : module.name; const buyUrl = (!generic) ? buyLink(module.id, module.name) : waLink("Olá, quero adquirir acesso à Clínica Digital."); const tryRedeem = () => { const res = redeemAccessCode(code); if (res.ok) { setError(""); onRedeemed?.(res.scope); } else { setError("Código não reconhecido. Confira o código que você recebeu."); } }; return (
e.stopPropagation()} style={{ width: "100%", maxWidth: 340, background: t.bg1, border: `1px solid ${t.borderStrong}`, borderRadius: RADIUS.lg, padding: "26px 24px 24px", boxShadow: "0 30px 80px rgba(0,0,0,0.6)", fontFamily: TYPE.sans, }} > {/* topo */}
{generic ? "Código de acesso" : "Liberar acesso"}
{sectionName}

Cole o código de acesso que você recebeu. Ele libera o conteúdo neste aparelho e você não precisa digitar de novo.

{/* input do código */} { setCode(e.target.value); setError(""); }} onKeyDown={(e) => { if (e.key === "Enter") tryRedeem(); }} placeholder="Digite seu código" autoFocus style={{ width: "100%", padding: "13px 14px", background: t.bg0, border: `1px solid ${error ? t.danger : t.border}`, borderRadius: RADIUS.md, color: t.ink1, fontFamily: TYPE.mono, fontSize: 15, letterSpacing: "0.04em", outline: "none", textTransform: "uppercase", }} /> {error && (
{error}
)} {/* desbloquear */} {/* separador + comprar — só quando vem de uma seção específica */} {!generic && ( <>
Ainda não tem
Comprar )}
); } Object.assign(window, { AccessModal });