/* global React, Icon, supa */ function Login({ onLogin }) { const [email, setEmail] = React.useState('mariana@btmsigma.com'); const [senha, setSenha] = React.useState(''); const [showSenha, setShowSenha] = React.useState(false); const [lembrar, setLembrar] = React.useState(true); const [erro, setErro] = React.useState(null); const [loading, setLoading] = React.useState(false); const submit = async (e) => { e?.preventDefault(); if (!email || !senha) { setErro('Preencha e-mail e senha'); return; } setErro(null); setLoading(true); try { const { data, error } = await window.supa.auth.signInWithPassword({ email: email.trim(), password: senha, }); if (error) { const msg = error.message || ''; if (/invalid login credentials/i.test(msg)) { setErro('E-mail ou senha incorretos. Verifique se o usuário foi criado em Authentication → Users no Supabase.'); } else if (/email not confirmed/i.test(msg)) { setErro('E-mail ainda não confirmado. Confirme no painel Supabase ou desative "Confirm email" em Auth → Providers.'); } else { setErro(msg || 'Erro ao entrar'); } return; } onLogin({ email: data.user.email, lembrar, user: data.user, session: data.session }); } catch (err) { setErro(err?.message || 'Falha de conexão com o servidor.'); } finally { setLoading(false); } }; const onKey = (e) => { if (e.key === 'Enter') submit(); }; return (
Da prospecção automática ao pagamento — captura, OCR, precificação blindada com regra do INNER, disputa ao vivo, empenhos e auditoria com trilha imutável. Tudo conectado por IA.