change some files
This commit is contained in:
61
ui/forms/workExperience/validation/index.ts
Normal file
61
ui/forms/workExperience/validation/index.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import * as Yup from "yup";
|
||||
|
||||
export const WorkExperienceValidationSchema = Yup.object({
|
||||
workExperiences: Yup.array()
|
||||
.of(
|
||||
Yup.object({
|
||||
id: Yup.mixed().optional(),
|
||||
hasNoExperience: Yup.boolean().required(),
|
||||
|
||||
companyName: Yup.string().when("hasNoExperience", {
|
||||
is: false,
|
||||
then: (schema) => schema.required("نام شرکت الزامی است"),
|
||||
otherwise: (schema) => schema.optional(),
|
||||
}),
|
||||
|
||||
lastPosition: Yup.string().when("hasNoExperience", {
|
||||
is: false,
|
||||
then: (schema) => schema.required("آخرین سمت الزامی است"),
|
||||
otherwise: (schema) => schema.optional(),
|
||||
}),
|
||||
|
||||
startYear: Yup.string().when("hasNoExperience", {
|
||||
is: false,
|
||||
then: (schema) =>
|
||||
schema
|
||||
.required("سال شروع الزامی است")
|
||||
.matches(/^\d{4}$/, "سال شروع باید 4 رقم باشد"),
|
||||
otherwise: (schema) => schema.optional(),
|
||||
}),
|
||||
|
||||
endYear: Yup.string().when("hasNoExperience", {
|
||||
is: false,
|
||||
then: (schema) =>
|
||||
schema
|
||||
.required("سال پایان الزامی است")
|
||||
.matches(/^\d{4}$/, "سال پایان باید 4 رقم باشد"),
|
||||
otherwise: (schema) => schema.optional(),
|
||||
}),
|
||||
|
||||
leavingReason: Yup.string().when("hasNoExperience", {
|
||||
is: false,
|
||||
then: (schema) => schema.required("علت ترک کار الزامی است"),
|
||||
otherwise: (schema) => schema.optional(),
|
||||
}),
|
||||
|
||||
description: Yup.string().optional(),
|
||||
}),
|
||||
)
|
||||
.min(1, "حداقل یک رکورد باید وجود داشته باشد")
|
||||
.test(
|
||||
"single-no-experience-item",
|
||||
"در صورت انتخاب فاقد سابقه، فقط یک رکورد مجاز است",
|
||||
(value) => {
|
||||
if (!value || value.length === 0) return false;
|
||||
const hasNoExperience = value.some((item) => item.hasNoExperience);
|
||||
if (!hasNoExperience) return true;
|
||||
return value.length === 1 && value[0].hasNoExperience === true;
|
||||
},
|
||||
)
|
||||
.required("ثبت سابقه کاری الزامی است"),
|
||||
});
|
||||
Reference in New Issue
Block a user