diff --git a/components/SubmitButton.vue b/components/SubmitButton.vue index c9328a1..473cc18 100644 --- a/components/SubmitButton.vue +++ b/components/SubmitButton.vue @@ -18,33 +18,20 @@ const attrs = computed(() => { props.loading === true ? props.loadingIcon || 'loading' : props.loading === false - ? 'thumb-up' - : props.icon, + ? 'thumb-up' + : props.icon, iconClass: props.loading ? 'animate-spin' : '', ...baseAttrs, } }) const onClick = (e: MouseEvent) => { - if (props.loading !== null) { + if (props.loading) { e.preventDefault() } } - - diff --git a/components/UserInfoForm.vue b/components/UserInfoForm.vue index 282f1ba..526e567 100644 --- a/components/UserInfoForm.vue +++ b/components/UserInfoForm.vue @@ -9,7 +9,7 @@ import type { Feedback } from '@/composables/form' const { t } = useI18n() const user = await useUser() -const loading: Ref = ref(false) +const loading: Ref = ref(false) const feedback: Ref = ref(null) const { handleSubmit, setFieldError, resetForm, meta } = useForm({ @@ -29,9 +29,8 @@ const { handleSubmit, setFieldError, resetForm, meta } = useForm({ watch( () => meta.value.dirty, (value) => { - // remove loading and feedback on edition + // remove global feedback on edition if (value) { - loading.value = null feedback.value = null } }, @@ -49,7 +48,7 @@ const onSubmit = handleSubmit(async (form) => { if (error.value) { // Reset form dirty state but keep previous values - resetForm({ values: form }) + resetForm({ values: { ...form, mail: user.value.mail } }) const errData = error.value.data let message @@ -67,7 +66,7 @@ const onSubmit = handleSubmit(async (form) => { } else if (data.value) { Object.assign(user.value, data) resetForm({ - values: data.value, + values: { ...data.value, mail: user.value.mail }, }) feedback.value = { variant: 'success', diff --git a/components/UserPasswordForm.vue b/components/UserPasswordForm.vue index fc736b9..b48a847 100644 --- a/components/UserPasswordForm.vue +++ b/components/UserPasswordForm.vue @@ -7,7 +7,7 @@ import type { Feedback } from '@/composables/form' const { t } = useI18n() -const loading: Ref = ref(false) +const loading: Ref = ref(false) const feedback: Ref = ref(null) const { handleSubmit, setFieldError, resetForm, meta } = useForm({ @@ -37,9 +37,8 @@ const { handleSubmit, setFieldError, resetForm, meta } = useForm({ watch( () => meta.value.dirty, (value) => { - // remove loading and feedback on edition + // remove global feedback on edition if (value) { - loading.value = null feedback.value = null } }, diff --git a/components/YForm.vue b/components/YForm.vue index eb34bd8..0bd5158 100644 --- a/components/YForm.vue +++ b/components/YForm.vue @@ -3,7 +3,7 @@ import type { Feedback } from '@/composables/form' withDefaults( defineProps<{ - loading: boolean | null + loading: boolean feedback?: Feedback submitVariant?: 'success' | 'warning' | 'error' }>(),