"use client"; import { RateData } from "@/lib/api"; interface Props { asset: "BTC" | "ETH"; data: RateData | null; } const ASSET_EMOJI: Record = { BTC: "₿", ETH: "Ξ" }; export default function RateCard({ asset, data }: Props) { const rate = data?.lastFundingRate ?? null; const positive = rate !== null && rate >= 0; const rateColor = rate === null ? "text-slate-400" : positive ? "text-emerald-400" : "text-red-400"; const badgeColor = rate === null ? "bg-slate-700 text-slate-300" : positive ? "bg-emerald-500/20 text-emerald-300 border border-emerald-500/30" : "bg-red-500/20 text-red-300 border border-red-500/30"; const nextTime = data?.nextFundingTime ? new Date(data.nextFundingTime).toLocaleTimeString("zh-CN", { hour: "2-digit", minute: "2-digit" }) : "--"; return (
{ASSET_EMOJI[asset]} {asset}/USDT
{rate === null ? "加载中" : positive ? "正费率 收款" : "负费率 付款"}

当前资金费率

{rate === null ? "--" : `${(rate * 100).toFixed(4)}%`}

标记价格

${data ? Number(data.markPrice).toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : "--"}

下次结算

{nextTime}

); }