import { useState, useMemo } from 'react'; import { Search, ClipboardList, ArrowRight, Plus, Settings2 } from 'lucide-react'; import { Input } from '@/components/ui/input'; import { Button } from '@/components/ui/button'; import { filterInterviewTemplates } from '@/lib/interview/templates'; import type { InterviewTemplate } from '@/lib/interview/types'; interface InterviewPickerProps { templates: InterviewTemplate[]; onStart: (template: InterviewTemplate) => void; disabled?: boolean; onNew?: () => void; onManage?: () => void; } export function InterviewPicker({ templates, onStart, disabled, onNew, onManage }: InterviewPickerProps) { const [query, setQuery] = useState(''); const [selectedId, setSelectedId] = useState(null); const filtered = useMemo(() => filterInterviewTemplates(templates, query), [templates, query]); const selected = selectedId ? filtered.find(t => t.id === selectedId) ?? null : null; return (
Start an interview
{onManage && ( )} {onNew && ( )}
setQuery(e.target.value)} placeholder="Search templates…" className="h-8 pl-8 text-xs" />
{filtered.length === 0 ? (
No templates match “{query}”.
) : ( filtered.map((t) => { const isSelected = t.id === selectedId; return ( ); }) )}
); }