import { formatSize, formatTime, formatTransferProgress } from '@/lib/format'; import { useDownload } from '@/features/item/download'; import { InlineContent, inlineKindOf } from '@/features/item/InlineContent'; import { senderLabel } from '@/lib/sender'; import { titleOf } from '@/features/item/summary'; import { Tile } from '@/features/item/Tile'; import { useWorkspace } from '@/store/workspace'; import { Button } from '@/ui/Button'; import { CopyButton } from '@/ui/CopyButton'; import styles from './LatestCard.module.css'; interface Props { id: string; onOpen: (id: string) => void; } /** 手机首屏:最新一项放大,拇指区一键取走 */ export function LatestCard({ id, onOpen }: Props) { const item = useWorkspace((s) => s.byId[id]); const download = useDownload(); if (!item) return null; const receiving = item.state.kind === 'receiving' ? item.state.progress : null; const inline = inlineKindOf(item); const size = item.kind === 'file' ? item.size : new Blob([item.text]).size; return (
最新
{inline ? onOpen(id)} /> : null} {receiving !== null ? (
) : (
{item.kind === 'text' ? ( ) : ( <> {item.preview !== 'none' ? : null} )}
)}
); }