import { useSearchParams } from "react-router";
import { PageHeader } from "~/components/console/page-header.tsx";
import {
type ExploreState,
fromSearchParams,
patch,
toSearchParams,
type View,
} from "~/components/discover/discover-state.ts";
import { ExploreView } from "~/components/discover/explore-view.tsx";
import { RecommendView } from "~/components/discover/recommend-view.tsx";
import { Tabs, TabsList, TabsTrigger } from "~/components/ui/tabs.tsx";
// 发现(对照 MP 推荐 + 探索,docs/porting/moviepilot-discover.md):
// 「推荐」按分区横排 TMDB / 豆瓣 / Bangumi 的热门与榜单,每区「查看全部」带参数切到「探索」;
// 「探索」选来源后按类型、风格、地区、语言、年份、评分、排序筛选或搜关键词。状态都在 URL 里。
// 卡片标本地状态;点开进作品,豆瓣 / bgm 条目先匹配 TMDB 作品。
export const meta = () => [{ title: "发现 · UHD 媒体自动化控制台" }];
export default function DiscoverPage() {
const [sp, setSp] = useSearchParams();
const view: View = sp.get("view") === "explore" || sp.has("src") ? "explore" : "recommend";
const explore = fromSearchParams(sp);
const category = sp.get("cat") ?? "";
const go = (next: ExploreState) => setSp(toSearchParams(next), { replace: false });
return (
<>
setSp(v === "explore" ? toSearchParams(explore) : new URLSearchParams(category ? { cat: category } : {}))
}
>
推荐
探索
{view === "recommend" ? (
setSp(new URLSearchParams(c ? { cat: c } : {}), { replace: true })}
/>
) : (
go(patch(explore, p))} />
)}
>
);
}