fix user registration form validation

This commit is contained in:
Michael Genson 2025-08-08 21:15:25 +00:00
commit eab4387251

View file

@ -1,5 +1,5 @@
import { useAsyncValidator } from "~/composables/use-validators";
import type { VForm } from "~/types/vuetify";
import type { VForm } from "~/types/auto-forms";
import { usePublicApi } from "~/composables/api/api-client";
const domAccountForm = ref<VForm | null>(null);
@ -13,11 +13,13 @@ const advancedOptions = ref(false);
export const useUserRegistrationForm = () => {
const i18n = useI18n();
function safeValidate(form: Ref<VForm | null>) {
if (form.value && form.value.validate) {
return form.value.validate();
async function safeValidate(form: Ref<VForm | null>) {
if (!form.value) {
return false;
}
return false;
const result = await form.value.validate();
return result.valid;
}
// ================================================================
// Provide Group Details
@ -45,11 +47,15 @@ export const useUserRegistrationForm = () => {
email,
advancedOptions,
validate: async () => {
if (!(validUsername.value && validEmail.value)) {
if (!validUsername.value || !validEmail.value) {
await Promise.all([validateUsername(), validateEmail()]);
}
return (safeValidate(domAccountForm as Ref<VForm>) && validUsername.value && validEmail.value);
if (!validUsername.value || !validEmail.value) {
return false;
}
return await safeValidate(domAccountForm as Ref<VForm>);
},
reset: () => {
accountDetails.username.value = "";