{
+ return {
+ province: {
+ required: helpers.withMessage("فیلد استان سکونت الزامی می باشد", required),
+ minLength: helpers.withMessage("فیلد استان سکونت حداقل 2 کرکتر می باشد", minLength(2)),
+ },
+ city: {
+ required: helpers.withMessage("فیلد شهر سکونت الزامی می باشد", required),
+ minLength: helpers.withMessage("فیلد شهر سکونت حداقل 2 کرکتر می باشد", minLength(2)),
+ },
+ postal_code: {
+ required: helpers.withMessage("فیلد کد پستی الزامی می باشد", required),
+ minLength: helpers.withMessage("فیلد کد پستی حداقل 10 کرکتر می باشد", minLength(10)),
+ },
+ address: {
+ required: helpers.withMessage("فیلد آدرس کامل الزامی می باشد", required),
+ minLength: helpers.withMessage("فیلد آدرس کامل حداقل 2 کرکتر می باشد", minLength(2)),
+ },
+ phone: {
+ required: helpers.withMessage("فیلد تلفن همراه الزامی می باشد", required),
+ minLength: helpers.withMessage("فیلد تلفن همراه حداقل 10 کرکتر می باشد", minLength(10)),
+ },
+ };
+});
+
+const formValidator$ = useVuelidate(formRules, addressData);
+
// queries
const { data: account } = useGetAccount();
@@ -64,35 +95,42 @@ const closeModal = () => {
is_main: false,
};
}
+ formValidator$.value.$reset();
isShow.value = false;
};
-const addNew = () => {
- createOrUpdateAddress(
- { ...addressData.value },
- {
- onSuccess: () => {
- queryClient.invalidateQueries({
- queryKey: [QUERY_KEYS.addresses],
- });
- closeModal();
- addToast({
- message: isEditing.value ? "آدرس با موفقیت ویرایش شد" : "آدرس با موفقیت اضافه شد",
- options: {
- status: "success",
- },
- });
- },
- onError: () => {
- addToast({
- message: isEditing.value ? "آدرس با موفقیت ویرایش شد" : "مشکلی در افزودن آدرس رخ داد",
- options: {
- status: "error",
- },
- });
- },
- }
- );
+const handleSubmit = async () => {
+ await formValidator$.value.$validate();
+ if (!formValidator$.value.$errors.length) {
+ createOrUpdateAddress(
+ { ...addressData.value },
+ {
+ onSuccess: () => {
+ queryClient.invalidateQueries({
+ queryKey: [QUERY_KEYS.addresses],
+ });
+ queryClient.invalidateQueries({
+ queryKey: [QUERY_KEYS.cart],
+ });
+ closeModal();
+ addToast({
+ message: isEditing.value ? "آدرس با موفقیت ویرایش شد" : "آدرس با موفقیت اضافه شد",
+ options: {
+ status: "success",
+ },
+ });
+ },
+ onError: () => {
+ addToast({
+ message: isEditing.value ? "آدرس با موفقیت ویرایش شد" : "مشکلی در افزودن آدرس رخ داد",
+ options: {
+ status: "error",
+ },
+ });
+ },
+ }
+ );
+ }
};
watch(
@@ -122,9 +160,9 @@ watch(