diff --git a/app/ui/lecture/taken-lecture/add-taken-lecture-button.tsx b/app/ui/lecture/taken-lecture/add-taken-lecture-button.tsx index 68462739..7243ab14 100644 --- a/app/ui/lecture/taken-lecture/add-taken-lecture-button.tsx +++ b/app/ui/lecture/taken-lecture/add-taken-lecture-button.tsx @@ -2,6 +2,7 @@ import { LectureInfo } from '@/app/type/lecture'; import Form from '../../view/molecule/form'; import { addTakenLecture } from '@/app/business/lecture/taken-lecture.command'; import { useToast } from '../../view/molecule/toast/use-toast'; +import { useState } from 'react'; interface AddTakenLectureButtonProps { lectureItem: LectureInfo; @@ -9,8 +10,10 @@ interface AddTakenLectureButtonProps { } export default function AddTakenLectureButton({ lectureItem, isTakenLecture }: AddTakenLectureButtonProps) { const { toast } = useToast(); + const [disabled, setDisabled] = useState(isTakenLecture); - const announceSuccessOfAddTakenLecture = () => { + const handleSuccessOfAdditionTakenLecture = () => { + setDisabled(true); return toast({ title: '과목 추가에 성공했습니다', }); @@ -23,13 +26,13 @@ export default function AddTakenLectureButton({ lectureItem, isTakenLecture }: A return addTakenLecture(lectureItem.id); }} failMessageControl="toast" - onSuccess={announceSuccessOfAddTakenLecture} + onSuccess={handleSuccessOfAdditionTakenLecture} > diff --git a/app/ui/view/molecule/form/form-root.tsx b/app/ui/view/molecule/form/form-root.tsx index 761fb336..5bb5c37b 100644 --- a/app/ui/view/molecule/form/form-root.tsx +++ b/app/ui/view/molecule/form/form-root.tsx @@ -59,7 +59,7 @@ export function FormRoot({ }; return ( - + {formState.isFailure && failMessageControl === 'alert' ? (
diff --git a/app/ui/view/molecule/form/form-submit-button.tsx b/app/ui/view/molecule/form/form-submit-button.tsx index fffc00d3..88d049c2 100644 --- a/app/ui/view/molecule/form/form-submit-button.tsx +++ b/app/ui/view/molecule/form/form-submit-button.tsx @@ -9,10 +9,6 @@ interface FormSubmitButtonProps extends React.ButtonHTMLAttributes
diff --git a/app/ui/view/molecule/form/form.context.ts b/app/ui/view/molecule/form/form.context.ts index 653f1d7e..e093a94d 100644 --- a/app/ui/view/molecule/form/form.context.ts +++ b/app/ui/view/molecule/form/form.context.ts @@ -3,11 +3,9 @@ import { createContext } from 'react'; interface FormContext { formId: string; errors: Record; - isSuccess: boolean; } export const FormContext = createContext({ formId: '', errors: {}, - isSuccess: false, });