import { Breadcrumb, Card, Icon, IconButton, Paragraph, Space, Tag, Text, Title, type BreadcrumbItem, } from '@stash/ui' import type { ItemDetailModel } from '../../data/detail' import type { RelatedItem } from '../../data/types' import { RelatedList } from './RelatedList' /** * 条目详情页:应用与电影共用。 * * 版式:面包屑 + 标题 + 主图(方形头像 / 竖版海报)+ 标签行 + 一句话评价 + 正文 * + 操作条(浏览 / 点赞 / 分享 / 跳转)+ 可选横幅 + 「推荐阅读」。 * 具体形态由 ItemDetailModel 决定,这里不判断条目类型。 */ type ItemDetailViewProps = { crumbs: BreadcrumbItem[] model: ItemDetailModel related: RelatedItem[] onNavigate: (href: string) => void onOpenItem: (itemId: string) => void } export function ItemDetailView({ crumbs, model, related, onNavigate, onOpenItem, }: ItemDetailViewProps) { return (
{model.title} <button type="button" className="item-edit" disabled title="编辑功能待接入"> [编辑] </button>
{model.cover !== undefined ? ( {model.title} ) : ( {model.fallbackIcon ?? '•'} )}
{model.tags.length > 0 && ( {model.tags.map((tag) => ( {tag} ))} )} {model.comment !== undefined && (

{model.comment}

)} {model.paragraphs.map((paragraph, index) => ( {paragraph} ))}
{model.views} {model.likes} } /> {/* 占位数据没有真实地址时,按钮置灰而不是打开空白页 */} {model.href === '#' ? ( ) : ( 跳转到 )}
{model.banner !== undefined && ( )}
) }