import { AdBannersSlot, AdIconsSlot, FriendLinksSlot, H5FriendLinksSlot } from "@/components/common/ads/slots"; import type { ReactNode } from "react"; import { ChannelHeader, H5ChannelHeader } from "@/components/common/channel-header"; import { Pagination } from "@/components/common/pagination"; import { buildPageHrefMap } from "@/components/common/pagination-map"; import { FloatingActions } from "@/components/home/floating-actions"; import { DownloadBanner } from "@/components/home/page-sections"; import { SeoBreadcrumb } from "@/components/seo/seo-breadcrumb"; import type { ShortDramaItem } from "@/components/short-drama/data"; import { H5ShortDramaCard, ShortDramaCard } from "@/components/short-drama/short-drama-card"; import { TopicListCard } from "@/components/topic/topic-list-card"; import { H5VideoCard, VideoCard } from "@/components/video/video-card"; import type { MorePageData } from "./data"; import { moreListHref } from "./route"; type CardRenderer = (item: ShortDramaItem) => ReactNode; const layouts = { 短剧: { gridClassName: "grid-cols-[repeat(auto-fill,266px)] gap-5", h5GridClassName: "grid-cols-2 gap-x-[7px] gap-y-3", renderCard: (item: ShortDramaItem) => , renderH5Card: (item: ShortDramaItem) => , }, 视频: { gridClassName: "grid-cols-[repeat(auto-fill,324px)] gap-5", h5GridClassName: "grid-cols-2 gap-x-[7px] gap-y-3", renderCard: (item: ShortDramaItem) => , renderH5Card: (item: ShortDramaItem) => , }, } satisfies Record; function TopicGrid({ topics, dataType, compact, }: { topics: MorePageData["topics"]; dataType: MorePageData["dataType"]; compact?: boolean; }) { if (!topics.length) return null; return ( {topics.map((topic) => ( ))} ); } export function MorePage({ data }: { data: MorePageData }) { const layout = layouts[data.tab]; const header = { eyebrow: "MORE", title: data.title, subtitle: data.subtitle, }; const hrefMap = data.configId && data.totalPages > 1 ? buildPageHrefMap(data.totalPages, (page) => moreListHref(data.configId, page)) : undefined; return ( <> {data.items.length ? ( {data.items.map((item) => layout.renderH5Card(item))} ) : !data.topics.length ? ( 暂无更多内容 ) : null} {hrefMap ? : null} {data.items.length ? ( {data.items.map((item) => layout.renderCard(item))} ) : !data.topics.length ? ( 暂无更多内容 ) : null} {/* 分页放在 design-frame 外,避免 Chrome CSS zoom 热区错位导致点击无响应 */} {hrefMap ? ( ) : null} > ); }
暂无更多内容