+ {/* Primary: title + genre + value + change */}
+
+
+ {h.storyline.title}
+
+ {h.storyline.genre && (
+
+ {h.storyline.genre}
- {plotUsd && (
-
- ({formatUsdValue(Number(formatUnits(h.value, h.reserveDecimals)) * plotUsd)})
-
- )}
- {h.priceChange !== null && (
- = 0 ? "text-accent" : "text-error"}`}>
- {h.priceChange >= 0 ? "+" : ""}{h.priceChange.toFixed(1)}%
-
- )}
-
+ )}
+
+ {formatPrice(formatUnits(h.value, h.reserveDecimals))} {RESERVE_LABEL}
+
+ {plotUsd && (
+
+ ({formatUsdValue(Number(formatUnits(h.value, h.reserveDecimals)) * plotUsd)})
+
+ )}
+ {h.priceChange !== null && (
+
= 0 ? "text-accent" : "text-error"}`}>
+ {h.priceChange >= 0 ? "+" : ""}{h.priceChange.toFixed(1)}%
+
+ )}
- {/* Row 2: Inline stats */}
-
+ {/* Secondary: compact stats */}
+
{formatPrice(formatUnits(h.balance, 18))} tokens
- ·
-
- price {formatPrice(formatUnits(h.price, 18))} {RESERVE_LABEL}
- {plotUsd != null && (≈ {formatUsdValue(Number(formatUnits(h.price, 18)) * plotUsd)})}
-
+ ·
+ price {formatPrice(formatUnits(h.price, 18))} {RESERVE_LABEL}
+ {plotUsd != null && (≈ {formatUsdValue(Number(formatUnits(h.price, 18)) * plotUsd)})}
{h.entryPrice !== null && h.entryPrice > 0 && (
<>
- ·
-
- entry {formatPrice(h.entryPrice)} {RESERVE_LABEL}
- {plotUsd != null && (≈ {formatUsdValue(h.entryPrice * plotUsd)})}
-
+ ·
+ entry {formatPrice(h.entryPrice)} {RESERVE_LABEL}
+ {plotUsd != null && (≈ {formatUsdValue(h.entryPrice * plotUsd)})}
>
)}
{h.lastTraded && (
<>
- ·
-
- {new Date(h.lastTraded).toLocaleDateString("en-US", { month: "short", day: "numeric" })}
-
+ ·
+ {new Date(h.lastTraded).toLocaleDateString("en-US", { month: "short", day: "numeric" })}
>
)}