)}
- {/* Donations received as writer */}
- {hasDonationsReceived && (
-
-
Donations Received
-
- {formatPrice(formatUnits(donationsReceived!.total, 18))} {RESERVE_LABEL}
-
- {plotUsd != null && (
-
(≈ {formatUsdValue(Number(formatUnits(donationsReceived!.total, 18)) * plotUsd)})
+ {/* Donations — consistent card styling for both received and given */}
+ {(hasDonationsReceived || (isOwnProfile && hasDonationsGiven)) && (
+
+ {hasDonationsReceived && (
+
+ Received
+
+ {formatPrice(formatUnits(donationsReceived!.total, 18))} {RESERVE_LABEL}
+
+ {plotUsd != null && (
+ (≈ {formatUsdValue(Number(formatUnits(donationsReceived!.total, 18)) * plotUsd)})
+ )}
+ from {donationsReceived!.count} {donationsReceived!.count === 1 ? "donation" : "donations"}
+
)}
-
- from {donationsReceived!.count} {donationsReceived!.count === 1 ? "donation" : "donations"}
-
-
- )}
- {/* Donations given as reader — own profile only, paginated */}
- {isOwnProfile && hasDonationsGiven && (
-
-
- Donations Given
- {donationTotalCount > 0 && (
-
- {donationTotalCount} {donationTotalCount === 1 ? "donation" : "donations"}
- {totalDonated > BigInt(0) && (
- <> · {formatPrice(formatUnits(totalDonated, 18))} {RESERVE_LABEL}{plotUsd != null && ` (≈ ${formatUsdValue(Number(formatUnits(totalDonated, 18)) * plotUsd)})`} total loaded>
+ {isOwnProfile && hasDonationsGiven && (
+
+
+ Given
+
+ {formatPrice(formatUnits(totalDonated, 18))} {RESERVE_LABEL}
+
+ {plotUsd != null && totalDonated > BigInt(0) && (
+ (≈ {formatUsdValue(Number(formatUnits(totalDonated, 18)) * plotUsd)})
)}
-
- )}
-
-
- {donationsGiven.map((d) => (
-
-
-
{donationTotalCount} {donationTotalCount === 1 ? "donation" : "donations"}
+
▶
+
▼
+
+
+ {donationsGiven.map((d) => (
+
+
+
+ Story #{d.storyline_id}
+
+ {d.block_timestamp && (
+
+ )}
+
+
+
+ {formatPrice(formatUnits(BigInt(d.amount), 18))} {RESERVE_LABEL}
+
+ {plotUsd != null && (
+
(≈ {formatUsdValue(Number(formatUnits(BigInt(d.amount), 18)) * plotUsd)})
+ )}
+ {d.tx_hash && (
+
+ ↗
+
+ )}
+
+
+ ))}
+ {donHasNext && (
+
-
-
- {formatPrice(formatUnits(BigInt(d.amount), 18))} {RESERVE_LABEL}
-
- {plotUsd != null && (
-
(≈ {formatUsdValue(Number(formatUnits(BigInt(d.amount), 18)) * plotUsd)})
- )}
- {d.tx_hash && (
-
- ↗
-
- )}
-
+ {donFetchingNext ? "Loading..." : `Load more (${donationTotalCount - donationsGiven.length} remaining)`}
+
+ )}
- ))}
-
- {donHasNext && (
-
+
)}
)}
@@ -1646,15 +1637,16 @@ function PortfolioTradingHistory({ address, plotUsd }: { address: string; plotUs
if (trades.length === 0) return null;
return (
-
-
- Trading History
-
- {totalCount} {totalCount === 1 ? "trade" : "trades"}
-
-
-
-
+
+
+ Trades
+ {totalCount}
+ {totalCount === 1 ? "trade" : "trades"}
+ ▶
+ ▼
+
+
+
{trades.map((t) => {
const isBuy = t.event_type === "mint";
const title = storylineTitles?.[t.storyline_id];
@@ -1662,58 +1654,48 @@ function PortfolioTradingHistory({ address, plotUsd }: { address: string; plotUs
return (
-
-
-
-
- {isBuy ? "Buy" : "Sell"}
-
-
- {title || `Story #${t.storyline_id}`}
-
-
-
- {tokenCount > 0 && (
- {formatSupply(tokenCount)} tokens
- )}
- {t.block_timestamp && (
-
- )}
-
-
-
-
- {formatPrice(t.reserve_amount)} {RESERVE_LABEL}
- {plotUsd && (
-
- (≈ {formatUsdValue(t.reserve_amount * plotUsd)})
-
- )}
+
+
+ {isBuy ? "Buy" : "Sell"}
+
+
+ {title || `Story #${t.storyline_id}`}
+
+ {tokenCount > 0 && (
+ {formatSupply(tokenCount)} tokens
+ )}
+ {t.block_timestamp && (
+
+ )}
+
+
+
+ {formatPrice(t.reserve_amount)} {RESERVE_LABEL}
+
+ {plotUsd && (
+
+ (≈ {formatUsdValue(t.reserve_amount * plotUsd)})
- {t.tx_hash && (
-
- ↗
-
- )}
-
+ )}
+ {t.tx_hash && (
+
+ ↗
+
+ )}
);
@@ -1721,15 +1703,17 @@ function PortfolioTradingHistory({ address, plotUsd }: { address: string; plotUs
{hasNextPage && (
-
+
+
+
)}
-
+
);
}