/* ============================================================ EMPRESA > DASHBOARD CLIENTES > ACESSOS DE CLIENTES Cria login real (Supabase Auth) para um cliente já cadastrado, via Edge Function (precisa da service_role, que não pode rodar no navegador). Veja a Edge Function "manage-cliente-access". ============================================================ */ function PageCliAcessos({ clientes, onCreate, onReset, onRevoke }){ const [selectedId, setSelectedId] = useState(''); const [email, setEmail] = useState(''); const [senha, setSenha] = useState(''); const [loading, setLoading] = useState(false); const semAcesso = clientes.filter(c=>!c.authUserId); const comAcesso = clientes.filter(c=>c.authUserId); const clienteSelecionado = clientes.find(c=>c.id===selectedId); useEffect(()=>{ if(clienteSelecionado){ setEmail(clienteSelecionado.email); } else { setEmail(''); } setSenha(''); }, [selectedId]); async function submit(e){ e.preventDefault(); if(!selectedId || !email || !senha) return; setLoading(true); await onCreate(selectedId, clienteSelecionado.nome, email, senha); setLoading(false); setSelectedId(''); setEmail(''); setSenha(''); } function reset(c){ const nova = window.prompt('Nova senha temporária para ' + c.nome + ':'); if(nova && nova.length>=6) onReset(c.authUserId, c.nome, nova); else if(nova) window.alert('A senha precisa ter pelo menos 6 caracteres.'); } return (

Criar Acesso de Cliente

{semAcesso.length===0 ? (

Todos os clientes cadastrados já têm acesso ao portal.

) : (
setEmail(e.target.value)} required/>
setSenha(e.target.value)} placeholder="mínimo 6 caracteres" required minLength={6}/>
)}

No primeiro login, o cliente será solicitado a definir uma nova senha antes de entrar no portal.

Acessos Criados ({comAcesso.length})

{comAcesso.map(c=>( ))} {comAcesso.length===0 && }
NomeEmpresaE-mail
{c.nome}{c.empresa}{c.email}
Nenhum cliente com acesso ainda.
); }