import { Col, Row } from "reactstrap"; import ValidationField from "../../../../Components/ValidationField/ValidationField"; import { useGetAllGrade } from "../../../../api/grade"; import { useGetAllSubject } from "../../../../api/subject"; import { useGetAllUnit } from "../../../../api/unit"; import { useGetAllCurriculum } from "../../../../api/curriculum"; import { useGetAllLesson } from "../../../../api/lesson"; import { useFormikContext } from "formik"; import { PackageInitialValues } from "../../../../types/Package"; import { useValidationValidationParamState } from "../../../../Components/ValidationField/state/ValidationValidationParamState"; import { useEffect } from "react"; import ConfigurationField from "../../Field/ConfigurationField"; import FieldGroup from "../../Field/FieldGroup"; const Form = () => { const { values, setFieldValue } = useFormikContext(); const { ValidationParamState } = useValidationValidationParamState(); const { GradeName, GradeCurrentPage, SubjectName, SubjectCurrentPage, UnitName, UnitCurrentPage, CurriculumName, CurriculumCurrentPage, LessonName, LessonCurrentPage } = ValidationParamState; const { curriculums_ids, grade_id, subjects_ids, units_ids, lessons_ids } = values; /// grade_id const GradeDisabled = !!grade_id; const { data: Grade, isLoading: isLoadingGrade } = useGetAllGrade({ name: GradeName, page: GradeCurrentPage }); const GradeOption = Grade?.data ?? [] const canChangeGradePage = !!Grade?.links?.next; const GradePage = Grade?.meta?.currentPage; /// subjects_ids const SubjectDisabled = !!subjects_ids && subjects_ids?.length > 0; const { data: Subject, isLoading: isLoadingSubject } = useGetAllSubject({ grade_id: grade_id, name: SubjectName, page: SubjectCurrentPage }, { enabled: GradeDisabled }); const SubjectOption = Subject?.data ?? [] const canChangeSubjectPage = !!Subject?.links?.next; const SubjectPage = Subject?.meta?.currentPage; /// units_ids const UnitDisabled = !!units_ids && units_ids?.length > 0; const { data: Unit, isLoading: isLoadingUnit } = useGetAllUnit({ subjects_ids: subjects_ids, name: UnitName, page: UnitCurrentPage }, { enabled: SubjectDisabled }); const UnitOption = Unit?.data ?? [] const canChangeUnitPage = !!Unit?.links?.next; const UnitPage = Unit?.meta?.currentPage; /// curriculums_ids const CurriculumDisabled = !!curriculums_ids && curriculums_ids?.length > 0; const { data: Curriculum, isLoading: isLoadingCurriculum } = useGetAllCurriculum({ units_ids: units_ids, name: CurriculumName, page: CurriculumCurrentPage }, { enabled: UnitDisabled }); const CurriculumOption = Curriculum?.data ?? [] const canChangeCurriculumPage = !!Curriculum?.links?.next; const CurriculumPage = Curriculum?.meta?.currentPage; /// lessons_ids const { data: Lesson, isLoading: isLoadingLesson } = useGetAllLesson({ curriculums_ids: curriculums_ids, name: LessonName, page: LessonCurrentPage }, { enabled: CurriculumDisabled }); const LessonOption = Lesson?.data ?? [] const canChangeLessonPage = !!Lesson?.links?.next; const LessonPage = Lesson?.meta?.currentPage; useEffect(() => { const GradeChildren = (subjects_ids && subjects_ids?.length > 0 || units_ids && units_ids?.length > 0 || curriculums_ids && curriculums_ids?.length > 0 || lessons_ids && lessons_ids?.length > 0); if (!grade_id && GradeChildren) { setFieldValue("subjects_ids", []); setFieldValue("units_ids", []); setFieldValue("curriculums_ids", []); setFieldValue("lessons_ids", []); return; } console.log(1); const SubjectChildren = (units_ids && units_ids?.length > 0 || curriculums_ids && curriculums_ids?.length > 0 || lessons_ids && lessons_ids?.length > 0) console.log( subjects_ids && subjects_ids?.length < 1 && SubjectChildren); if (subjects_ids && subjects_ids?.length < 1 && SubjectChildren) { console.log(1); setFieldValue("units_ids", []); setFieldValue("curriculums_ids", []); setFieldValue("lessons_ids", []); return; } const UnitChildren = (curriculums_ids && curriculums_ids?.length > 0 || lessons_ids && lessons_ids?.length > 0) if (units_ids && units_ids?.length < 1 && UnitChildren) { setFieldValue("curriculums_ids", []); setFieldValue("lessons_ids", []); return; } const CurriculumChildren = (lessons_ids && lessons_ids?.length > 0) if (curriculums_ids && curriculums_ids?.length < 1 && CurriculumChildren) { setFieldValue("lessons_ids", []); return; } }, [grade_id, subjects_ids, units_ids, curriculums_ids]) return ( {/* grade_id */} {/* subjects_ids */} {/* units_ids */} {/* curriculums_ids */} {/* lessons_ids */} ); }; export default Form;