feat(frontend): add next_steps to types, completion modal, and detail page

- Add next_steps to Session, SessionUpdate, SessionComplete, SessionExport types
- Add Next Steps textarea to SessionOutcomeModal
- Update TreeNavigationPage consumer callback for next_steps
- Display next_steps with whitespace-pre-wrap on SessionDetailPage

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Michael Chihlas
2026-02-13 09:38:04 -05:00
parent 8797ae0261
commit 7dab7d7782
4 changed files with 31 additions and 2 deletions

View File

@@ -6,7 +6,7 @@ import type { SessionOutcome } from '@/types'
interface SessionOutcomeModalProps {
isOpen: boolean
onClose: () => void
onSubmit: (data: { outcome: SessionOutcome; outcome_notes?: string }) => Promise<void>
onSubmit: (data: { outcome: SessionOutcome; outcome_notes?: string; next_steps?: string }) => Promise<void>
isSubmitting?: boolean
}
@@ -30,10 +30,12 @@ export function SessionOutcomeModal({
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()
const nextSteps = ((formData.get('next-steps') as string | null) ?? '').trim()
await onSubmit({
outcome,
outcome_notes: outcomeNotes || undefined,
next_steps: nextSteps || undefined,
})
}
@@ -113,6 +115,21 @@ export function SessionOutcomeModal({
)}
/>
</div>
<div>
<label className="block text-sm font-medium text-white">Next Steps / Follow-Up (optional)</label>
<textarea
name="next-steps"
defaultValue=""
rows={3}
placeholder="Actions to take after this session..."
className={cn(
'mt-1 block w-full rounded-md border border-white/10 bg-black/50 px-3 py-2',
'text-sm text-white placeholder:text-white/40',
'focus:border-white/30 focus:outline-none focus:ring-1 focus:ring-white/20'
)}
/>
</div>
</form>
</Modal>
)