diff --git a/view/next-project/src/components/fund_information/EditModal.tsx b/view/next-project/src/components/fund_information/EditModal.tsx index a583e51a8..be5f8ea42 100644 --- a/view/next-project/src/components/fund_information/EditModal.tsx +++ b/view/next-project/src/components/fund_information/EditModal.tsx @@ -29,30 +29,25 @@ export default function EditModal(props: ModalProps) { receivedAt: props.fundInformation.receivedAt, }); - const [departmentID, setDepartmentID] = useState(1); - const [defaultValue, setDefaultValue] = useState(false); + const defaultTeacher = props.teachers.find( + (teacher) => teacher.id === props.fundInformation.teacherID, + ); + const [teacher, setTeacher] = useState(defaultTeacher); + const [departmentID, setDepartmentID] = useState(defaultTeacher?.departmentID || 1); useEffect(() => { - if (defaultValue == false) { - const selectedTeacher = props.teachers.find( - (teacher) => teacher.id === props.fundInformation.teacherID, - ); - if (selectedTeacher?.id) { - setDepartmentID(selectedTeacher.departmentID); - setFormData({ ...formData, teacherID: selectedTeacher.id }); - } - setTimeout(() => { - setDefaultValue(true); - }); - } else { + if (teacher?.departmentID !== departmentID) { const relatedTeachers = props.teachers.filter( (teacher) => teacher.departmentID === departmentID, ); - if (relatedTeachers) { - setFormData({ ...formData, teacherID: relatedTeachers[0].id || 0 }); - } + relatedTeachers && + setFormData({ + ...formData, + teacherID: relatedTeachers[0]?.id || 0, + }); + setTeacher(relatedTeachers[0]); } - }, [departmentID, props.teachers]); + }, [departmentID]); const handler = (input: string) =>