// Author: fruit.com.cn import { useSearchParams } from 'react-router-dom'; import { MediaCard } from '../components/MediaCard'; import { SectionHeading } from '../components/SectionHeading'; import { useAppStore } from '../app/store'; import { searchCatalog } from '../services/catalogService'; import { appApi } from '../services/appApi'; import { normalizeDrama, normalizePage } from '../services/normalizers'; import { useApi } from '../hooks/useApi'; export function SearchPage() { const { locale } = useAppStore(); const [params] = useSearchParams(); const query = params.get('q') || ''; const api = useApi(() => appApi.dramas().then((payload) => normalizePage(payload).list.map((item) => normalizeDrama(item, locale.code))), [locale.code]); const source = api.data?.length ? api.data : searchCatalog('', '', 0); const normalizedQuery = query.toLowerCase(); const results = source.filter((video) => `${video.title} ${video.channel} ${video.genre}`.toLowerCase().includes(normalizedQuery)); return <>
{api.loading ? locale.loading : api.error ? locale.apiFallback : ''}
{results.map((video) => )}
; }