diff --git a/frontend/src/components/session/SessionOutcomeModal.tsx b/frontend/src/components/session/SessionOutcomeModal.tsx index 423baa67..034e16f3 100644 --- a/frontend/src/components/session/SessionOutcomeModal.tsx +++ b/frontend/src/components/session/SessionOutcomeModal.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from 'react' +import { useRef } from 'react' import { Modal } from '@/components/common/Modal' import { cn } from '@/lib/utils' import type { SessionOutcome } from '@/types' @@ -23,19 +23,17 @@ export function SessionOutcomeModal({ onSubmit, isSubmitting = false, }: SessionOutcomeModalProps) { - const [outcome, setOutcome] = useState('resolved') - const [outcomeNotes, setOutcomeNotes] = useState('') - - useEffect(() => { - if (!isOpen) return - setOutcome('resolved') - setOutcomeNotes('') - }, [isOpen]) + const formRef = useRef(null) const handleSubmit = async () => { + if (!formRef.current) return + const formData = new FormData(formRef.current) + const outcome = (formData.get('session-outcome') as SessionOutcome | null) ?? 'resolved' + const outcomeNotes = ((formData.get('outcome-notes') as string | null) ?? '').trim() + await onSubmit({ outcome, - outcome_notes: outcomeNotes.trim() || undefined, + outcome_notes: outcomeNotes || undefined, }) } @@ -71,7 +69,7 @@ export function SessionOutcomeModal({ )} > -
+

Select the session outcome before completion.

@@ -89,8 +87,7 @@ export function SessionOutcomeModal({ type="radio" name="session-outcome" value={option.value} - checked={outcome === option.value} - onChange={() => setOutcome(option.value)} + defaultChecked={option.value === 'resolved'} className="mt-1 h-4 w-4" />
@@ -105,8 +102,8 @@ export function SessionOutcomeModal({