import type { XPostData } from './types'; function formatNumber(n: number): string { if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`; if (n >= 1_000) return `${(n / 1_000).toFixed(1)}K`; return String(n); } export function XPostsCard({ data, onExpand }: { data: XPostData; onExpand: () => void }) { const { query, posts } = data; return (
{/* Header */}
𝕏 X 検索結果: 「{query}」 {posts.length}件
{/* Post list */}
{posts.slice(0, 5).map((p) => ( {p.authorScreenName}
{p.authorName} @{p.authorScreenName}
{p.text.replace(/\n/g, ' ')}
♥ {formatNumber(p.likes)} 🔁 {formatNumber(p.retweets)} 👁 {formatNumber(p.views)}
))}
{/* Expand button */}
); }