import { useEffect, useState } from 'react' import { apiClient } from '../api/client' interface CaseSelectorProps { selectedCase: string | null onSelectCase: (caseId: string) => void } export function CaseSelector({ selectedCase, onSelectCase }: CaseSelectorProps) { const [cases, setCases] = useState([]) const [isLoading, setIsLoading] = useState(true) const [error, setError] = useState(null) useEffect(() => { const abortController = new AbortController() const fetchCases = async () => { try { const data = await apiClient.getCases(abortController.signal) setCases(data.cases) } catch (err) { // Ignore abort errors - component unmounted if (err instanceof Error && err.name === 'AbortError') return const message = err instanceof Error ? err.message : 'Unknown error' setError(`Failed to load cases: ${message}`) } finally { if (!abortController.signal.aborted) { setIsLoading(false) } } } fetchCases() return () => abortController.abort() }, []) if (isLoading) { return (

Loading cases...

) } if (error) { return (

{error}

) } return (
) }