From 1d013c013c6dcd30dbfac11acdb2f1a08e01ee49 Mon Sep 17 00:00:00 2001 From: WebDevNerdStuff Date: Wed, 14 May 2025 14:31:45 -0700 Subject: [PATCH 1/2] add unmount --- src/plugin/components/fields/VSFCustom/VSFCustom.vue | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugin/components/fields/VSFCustom/VSFCustom.vue b/src/plugin/components/fields/VSFCustom/VSFCustom.vue index d7d6ecc..b2fe5b9 100644 --- a/src/plugin/components/fields/VSFCustom/VSFCustom.vue +++ b/src/plugin/components/fields/VSFCustom/VSFCustom.vue @@ -47,6 +47,7 @@ const settings = inject>('settings')!; const FieldLabelComponent = toRaw(FieldLabel); const fieldValidateOn = computed(() => field.value?.validateOn ?? settings.value.validateOn); +const originalValue = modelValue.value; const $useField = useField( @@ -61,6 +62,13 @@ const $useField = useField( }, ); +onUnmounted(() => { + if (!settings.value.keepValuesOnUnmount) { + modelValue.value = originalValue; + $useField.setValue(originalValue); + } +}); + // ------------------------- Validate On Actions // async function onActions(action: ValidateAction): Promise { From d5a11685dbb3f4b35d707155820a920a6ba002fb Mon Sep 17 00:00:00 2001 From: WebDevNerdStuff Date: Wed, 14 May 2025 17:19:39 -0700 Subject: [PATCH 2/2] fix validation quirk --- src/plugin/VStepperForm.vue | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/plugin/VStepperForm.vue b/src/plugin/VStepperForm.vue index f456b38..f3aa027 100755 --- a/src/plugin/VStepperForm.vue +++ b/src/plugin/VStepperForm.vue @@ -531,6 +531,25 @@ function removePageError(pageIndex: number): void { currentPageHasErrors.value = false; } +// Reset the next page fields // +const resetPageFields = (pageIndex: number) => { + const page = computedPages.value[pageIndex + 1]; + + if (!page) { + return; + } + + if (!page?.fields?.length) { + return; + } + + for (const field of page.fields) { + if (field.name) { + $useForm.resetField(field.name, { force: true }); + } + } +}; + // ------------------------ Check the if the page has errors // function checkForPageErrors(errors: ValidateResult['errors'], source: string, next = () => { }): void { const page = computedPages.value[currentPageIdx.value]; @@ -553,6 +572,7 @@ function checkForPageErrors(errors: ValidateResult['errors'], source: string, ne removePageError(pageIndex); if (next && !lastPage.value && source !== 'submit') { + resetPageFields(pageIndex); next(); } }