// Author: fruit.com.cn import { useState } from 'react'; import { MediaCard } from '../components/MediaCard'; import { SectionHeading } from '../components/SectionHeading'; import { videos } from '../data/catalog'; 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 HomePage() { const { locale } = useAppStore(); const [genre, setGenre] = useState(locale.genres[0]); const [toast, setToast] = useState(''); const api = useApi(() => appApi.homeFeed().then((payload) => payload?.sections?.flatMap((section) => section.dramas || []).map((item) => normalizeDrama(item, locale.code)) || []), [locale.code]); const remoteItems = api.data || []; const items = remoteItems.length ? remoteItems : searchCatalog('', genre, locale.genres.indexOf(genre)); const play = () => { setToast(locale.watch); setTimeout(() => setToast(''), 1400); }; return <>
YMB ORIGINAL

{locale.hero}
{locale.accent}

{locale.description}

YMB drama
{locale.genres.map((item) => )}
{api.loading &&
{locale.loading}
}{api.error &&
{locale.apiFallback}
}
{items.map((video) => )}
{(remoteItems.length ? remoteItems.slice(0, 6) : videos.slice(1, 7)).map((video) => )}
{toast &&
{toast}
}; }