diff --git a/resources/js/helpers/validation.js b/resources/js/helpers/validation.js index af189d1..900a34c 100644 --- a/resources/js/helpers/validation.js +++ b/resources/js/helpers/validation.js @@ -1,6 +1,5 @@ import { watch } from "vue"; -import { formatAusDateToUniversal } from "../helpers/common"; -import { parse, parseISO } from "date-fns"; +import { parseISO } from "date-fns"; let oldFormData = {}; @@ -254,7 +253,11 @@ const parseValue = (val) => { return val; }; -const useValidation = (formData, pageRef = null, showMessages = false) => { +export const useValidation = ( + formData, + pageRef = null, + showMessages = false +) => { watch(formData, (newFormData) => { if (newFormData) { validateRules(newFormData, false, pageRef, showMessages); @@ -262,7 +265,7 @@ const useValidation = (formData, pageRef = null, showMessages = false) => { }); }; -const isValidated = (formData, pageRef = null) => { +export const isValidated = (formData, pageRef = null) => { let result = true; oldFormData = JSON.parse(JSON.stringify(formData)); @@ -281,11 +284,11 @@ const isValidated = (formData, pageRef = null) => { return result; }; -const fieldValidate = (fieldData) => { +export const fieldValidate = (fieldData) => { validateSingle(fieldData); }; -const restParseErrors = (formData, formErrorRef, response) => { +export const restParseErrors = (formData, formErrorRef, response) => { let foundKeys = false; if (response.response?.data?.errors) { @@ -313,4 +316,13 @@ const restParseErrors = (formData, formErrorRef, response) => { } }; -export { useValidation, isValidated, fieldValidate, restParseErrors }; +export const clearFormData = (formData) => { + Object.keys(formData).forEach((key) => { + if ("value" in formData[key]) { + formData[key]["value"] = ""; + } + if ("error" in formData[key]) { + formData[key]["error"] = ""; + } + }); +}; diff --git a/resources/js/views/Home.vue b/resources/js/views/Home.vue index 06cf894..e6afdd7 100644 --- a/resources/js/views/Home.vue +++ b/resources/js/views/Home.vue @@ -141,6 +141,7 @@ import { isValidated, fieldValidate, restParseErrors, + clearFormData, } from "../helpers/validation"; import SMInput from "../components/SMInput.vue"; import SMButton from "../components/SMButton.vue"; @@ -237,7 +238,8 @@ const handleSubscribe = async () => { captcha_token: captcha, }); - subscribeFormData.email.value = ""; + clearFormData(subscribeFormData); + formMessage.type = "success"; formMessage.message = "Your email address has been subscribed."; }