diff --git a/src/pages/RegisterPage.vue b/src/pages/RegisterPage.vue index 2c032b7..b9bec39 100644 --- a/src/pages/RegisterPage.vue +++ b/src/pages/RegisterPage.vue @@ -18,8 +18,9 @@ type="text" label="username" :rules="[ - (val) => val.length >= 3 || 'Mínimo 3 caracteres', - (val) => comprobarUsername?.length == 0 || 'Ya existe', + (val) => + (val != null && val.length >= 3) || 'Mínimo 3 caracteres', + (val) => comprobarUsername || 'Ya existe en la BD', ]" /> { }); }; const comprobarUsername = computed(() => { - return usuarios.value?.filter((user) => user.username == username.value); + let filtro = usuarios.value?.filter( + (user) => user.username.toLowerCase() == username.value.trim().toLowerCase() + ); + if (filtro.length == 0) { + return true; + } + return false; }); + +const comprobarEmail = computed(() => { + const emailPattern = + /^(?=[a-zA-Z0-9@._%+-]{6,254}$)[a-zA-Z0-9._%+-]{1,64}@(?:[a-zA-Z0-9-]{1,63}\.){1,8}[a-zA-Z]{2,63}$/; + let filtro = usuarios.value?.filter( + (user) => user.email == email.value.trim() + ); + if (emailPattern.test(email.value) && filtro.length == 0) { + return true; + } + return false; +}); + +const btnRegisterDisable = () => { + if ( + username.value == null || + username.value.length < 3 || + !comprobarUsername.value || + nombre.value == null || + nombre.value.length < 3 || + email.value == null || + email.value.length < 7 || + !comprobarEmail.value + ) { + return true; + } + return false; +};