// Login de vendedora — usa Supabase si está configurado, fallback a localStorage demo. function LoginScreen({ onLogin }) { const T = window.T; const { Icon } = window; const [form, setForm] = React.useState({ cedula: '', clave: '' }); const [error, setError] = React.useState(''); const [loading, setLoading] = React.useState(false); const useSupabase = window.SUPABASE_CONFIGURED; const handleSubmit = async () => { setError(''); if (!form.cedula || !form.clave) { setError('Ingresa cédula y clave'); return; } setLoading(true); try { if (useSupabase) { const sb = await window.getSupabase(); const { data, error: err } = await sb.rpc('login_vendedora', { p_cedula: form.cedula.trim(), p_clave: form.clave, }); if (err) throw err; if (!data?.ok) { setError(data?.error || 'No se pudo iniciar sesión'); return; } const v = data.vendedora; window.saveSession({ vendedoraId: v.id }); onLogin(v); } else { // Modo demo (localStorage) const vendedoras = window.loadVendedoras(); const v = vendedoras.find(x => (x.cedula === form.cedula || x.telefono === form.cedula) && x.clave === form.clave ); if (!v) { setError('Cédula o clave incorrectos'); return; } window.saveSession({ vendedoraId: v.id }); window.seedDemoIfEmpty(v.id); onLogin(v); } } catch (e) { console.error(e); setError('Error de conexión. Intenta de nuevo.'); } finally { setLoading(false); } }; const quickLogin = (cedulaOrTel) => { if (useSupabase) return; const vendedoras = window.loadVendedoras(); const v = vendedoras.find(x => x.cedula === cedulaOrTel || x.telefono === cedulaOrTel); if (!v) return; window.saveSession({ vendedoraId: v.id }); window.seedDemoIfEmpty(v.id); onLogin(v); }; return (