change some files
This commit is contained in:
112
ui/forms/personal/validation/PersonalInfoFormValidation.tsx
Normal file
112
ui/forms/personal/validation/PersonalInfoFormValidation.tsx
Normal file
@@ -0,0 +1,112 @@
|
||||
// PersonalInfoForm.validation.ts
|
||||
import * as yup from "yup";
|
||||
import { PersonalInfoFormValues } from "../types";
|
||||
|
||||
export const PersonalInfoValidationSchema = yup
|
||||
.object({
|
||||
maritalStatus: yup.string().trim().required("وضعیت تاهل را انتخاب کنید"),
|
||||
|
||||
militaryStatus: yup
|
||||
.mixed<PersonalInfoFormValues["militaryStatus"]>()
|
||||
.oneOf([
|
||||
"",
|
||||
"کارت پایان خدمت",
|
||||
"در حال خدمت",
|
||||
"معافیت تحصیلی",
|
||||
"معافیت دائم",
|
||||
"انجام نشده",
|
||||
])
|
||||
.required("وضعیت نظام وظیفه را انتخاب کنید"),
|
||||
|
||||
permanentExemptionReason: yup
|
||||
.string()
|
||||
.trim()
|
||||
.when("militaryStatus", {
|
||||
is: "معافیت دائم",
|
||||
then: (s) => s.required("علت معافیت دائم الزامی است"),
|
||||
otherwise: (s) => s.notRequired(),
|
||||
}),
|
||||
|
||||
fatherEducation: yup.string().required("تحصیلات پدر را انتخاب کنید"),
|
||||
fatherJob: yup.string().trim().required("شغل پدر الزامی است"),
|
||||
motherEducation: yup.string().required("تحصیلات مادر را انتخاب کنید"),
|
||||
motherJob: yup.string().trim().required("شغل مادر الزامی است"),
|
||||
|
||||
housingStatus: yup
|
||||
.mixed<PersonalInfoFormValues["housingStatus"]>()
|
||||
.oneOf(["", "منزل شخصی", "منزل والدین", "منزل استیجاری", "سایر"])
|
||||
.required("وضعیت مسکن را انتخاب کنید"),
|
||||
city: yup.string().trim().required("شهر الزامی است"),
|
||||
address: yup.string().trim().required("آدرس الزامی است"),
|
||||
|
||||
homePhone: yup.string().trim().notRequired(),
|
||||
mobilePhone: yup.string().trim().required("تلفن همراه الزامی است"),
|
||||
emergencyPhone: yup.string().trim().notRequired(),
|
||||
email: yup.string().trim().email("ایمیل نامعتبر است").notRequired(),
|
||||
|
||||
residenceDuration: yup
|
||||
.mixed<number | "">()
|
||||
.test(
|
||||
"residenceDuration",
|
||||
"مدت سکونت نامعتبر است",
|
||||
(v) => v === "" || (typeof v === "number" && v >= 0),
|
||||
)
|
||||
.notRequired(),
|
||||
|
||||
isVeteran: yup.boolean().required(),
|
||||
|
||||
hasCriminalRecord: yup.boolean().required(),
|
||||
criminalDescription: yup
|
||||
.string()
|
||||
.trim()
|
||||
.when("hasCriminalRecord", {
|
||||
is: true,
|
||||
then: (s) => s.required("توضیحات سوء پیشینه الزامی است"),
|
||||
otherwise: (s) => s.notRequired(),
|
||||
}),
|
||||
|
||||
spouseName: yup
|
||||
.string()
|
||||
.trim()
|
||||
.when("maritalStatus", {
|
||||
is: "متاهل",
|
||||
then: (s) => s.required("نام همسر الزامی است"),
|
||||
otherwise: (s) => s.notRequired(),
|
||||
}),
|
||||
spouseEducation: yup
|
||||
.string()
|
||||
.trim()
|
||||
.when("maritalStatus", {
|
||||
is: "متاهل",
|
||||
then: (s) => s.required("تحصیلات همسر الزامی است"),
|
||||
otherwise: (s) => s.notRequired(),
|
||||
}),
|
||||
spouseJob: yup
|
||||
.string()
|
||||
.trim()
|
||||
.when("maritalStatus", {
|
||||
is: "متاهل",
|
||||
then: (s) => s.required("شغل همسر الزامی است"),
|
||||
otherwise: (s) => s.notRequired(),
|
||||
}),
|
||||
spouseWorkplace: yup
|
||||
.string()
|
||||
.trim()
|
||||
.when("maritalStatus", {
|
||||
is: "متاهل",
|
||||
then: (s) => s.required("محل کار همسر الزامی است"),
|
||||
otherwise: (s) => s.notRequired(),
|
||||
}),
|
||||
|
||||
childrenCount: yup.mixed<number | "">().when("maritalStatus", {
|
||||
is: (ms: string) => ["متاهل", "متارکه", "فوت همسر"].includes(ms),
|
||||
then: (s) =>
|
||||
s.test(
|
||||
"childrenCount",
|
||||
"تعداد فرزند نامعتبر است",
|
||||
(v) => v === "" || (typeof v === "number" && v >= 0),
|
||||
),
|
||||
otherwise: (s) => s.notRequired(),
|
||||
}),
|
||||
})
|
||||
.required();
|
||||
Reference in New Issue
Block a user