import type { FormEvent } from 'react' import { Loader2, Search } from 'lucide-react' import type { ExternalMediaResult, SearchIntent } from '../api/ai' import { MediaCard } from '../components/MediaCard' import type { Media } from '../types' import type { SeriesCard } from '../utils/groupSeries' import { seriesCardLink } from '../utils/groupSeries' import { AIAssistantExternalResults } from './AIAssistantExternalResults' type AIAssistantSearchSectionProps = { query: string searching: boolean intent: SearchIntent | null items: Media[] localCards: SeriesCard[] externalItems: ExternalMediaResult[] onSearch: (event: FormEvent) => void setQuery: (query: string) => void } const quickHints = [ '2023 年的科幻电影', '评分高的动漫', '最近添加的纪录片', '中文剧集', ] export function AIAssistantSearchSection({ query, searching, intent, items, localCards, externalItems, onSearch, setQuery, }: AIAssistantSearchSectionProps) { return (

智能搜索

setQuery(e.target.value)} />
{quickHints.map((hint) => ( ))}
) } function SearchIntentSummary({ intent }: { intent: SearchIntent | null }) { if (!intent) return null return (
解析结果
查询: {intent.query || '—'} {intent.year !== undefined && intent.year > 0 && ( 年份: {intent.year} )} {intent.genre && ( 类型: {intent.genre} )} {intent.type && ( 分类: {intent.type} )} {intent.sort && ( 排序: {intent.sort} )} {intent.language && ( 语言: {intent.language} )}
) } function LocalMediaResults({ localCards, itemCount, }: { localCards: SeriesCard[] itemCount: number }) { if (localCards.length === 0) return null return (
本地媒体库 · {localCards.length} 个合集 / {itemCount} 个条目
{localCards.map((card) => ( ))}
) }