import type { ChangeEvent } from 'react' import { useEffect, useState } from 'react' import { ArrowLeft, Save } from 'lucide-react' import { Link, useParams } from 'react-router-dom' import { KeyPersonnelPanel, TeamingPanel } from '../../screens/TeamingPanels' import { ToolHeader } from '../../components/ToolHeader' import { Panel } from '../../components/ui' import { slateBrand } from './brand' import { useTrackedOpportunity, useUpdateTrackedOpportunity } from './captureQueries' import { inputCls, PRIME_OR_SUB, SOURCE_LABEL, STATUSES, toDateInput } from './captureConstants' type Form = { title: string agency_name: string office_name: string solicitation_number: string notice_type: string naics_code: string psc_code: string set_aside_code: string place_of_performance: string incumbent_name: string source_url: string response_deadline: string prime_or_sub: string status: string } const EMPTY: Form = { title: '', agency_name: '', office_name: '', solicitation_number: '', notice_type: '', naics_code: '', psc_code: '', set_aside_code: '', place_of_performance: '', incumbent_name: '', source_url: '', response_deadline: '', prime_or_sub: '', status: 'identified', } export function OpportunityDetail() { const { id = '' } = useParams() const q = useTrackedOpportunity(id) const update = useUpdateTrackedOpportunity() const [form, setForm] = useState