const { Card, Button, Field, Input, Checkbox } = window.PilatesLifeStudioDesignSystem_f49721; function RegistroPage({ onNavigate, onRegistrado }) { const [nombre, setNombre] = React.useState(''); const [telefonoLocal, setTelefonoLocal] = React.useState(''); const [correo, setCorreo] = React.useState(''); const [password, setPassword] = React.useState(''); const [passwordConfirmacion, setPasswordConfirmacion] = React.useState(''); const [acepta, setAcepta] = React.useState(false); const [error, setError] = React.useState(''); const [cargando, setCargando] = React.useState(false); const enviar = async (e) => { e.preventDefault(); setError(''); if (!nombre.trim()) return setError('Escribe tu nombre.'); if (!telefonoLocalValido(telefonoLocal)) return setError('Ingresa un teléfono de 10 dígitos, sin el indicativo.'); if (correo.trim() && !/^\S+@\S+\.\S+$/.test(correo.trim())) return setError('El correo no es válido.'); if (password.length < 8) return setError('La contraseña debe tener al menos 8 caracteres.'); if (password !== passwordConfirmacion) return setError('Las contraseñas no coinciden.'); if (!acepta) return setError('Acepta los términos y condiciones para continuar.'); setCargando(true); try { const recaptchaToken = await obtenerTokenRecaptcha('registro'); const cliente = await registrarCliente({ nombre: nombre.trim(), telefono: telefonoE164(telefonoLocal), correo: correo.trim(), password, passwordConfirmacion, recaptchaToken, }); onRegistrado(cliente); } catch (err) { setError(err.message); } finally { setCargando(false); } }; return (
Cuenta

Crea tu cuenta

setNombre(e.target.value)} /> setTelefonoLocal(e.target.value)} /> setCorreo(e.target.value)} /> setPassword(e.target.value)} /> setPasswordConfirmacion(e.target.value)} /> setAcepta(e.target.checked)} label="Acepto los términos y condiciones" />

Puedes leerlos { e.preventDefault(); onNavigate('terminos'); }}>aquí.

{error &&

{error}

}

¿Ya tienes cuenta? { e.preventDefault(); onNavigate('login'); }}>Inicia sesión.

Este sitio está protegido por reCAPTCHA. Aplican la{' '} Política de privacidad {' '}y los Términos de servicio de Google.

); } Object.assign(window, { RegistroPage });