-
- {storyline.plot_count} {storyline.plot_count === 1 ? "plot" : "plots"}
-
-
- {priceInfo
- ? `${formatPrice(priceInfo.pricePerToken)} ${RESERVE_LABEL}${plotUsd != null ? ` (≈ ${formatUsdValue(Number(priceInfo.pricePerToken) * plotUsd)})` : ""}`
- : "—"}
-
-
- {holderCount !== undefined ? `${holderCount} holder${holderCount !== 1 ? "s" : ""}` : "—"}
-
-
- {formatViewCount(storyline.view_count)} views
-
- {isOwnProfile && storyline.token_address && (
-
+ {/* Row 2: Key stats — inline */}
+
+ {storyline.plot_count} {storyline.plot_count === 1 ? "plot" : "plots"}
+ ·
+ {holderCount !== undefined ? `${holderCount} holder${holderCount !== 1 ? "s" : ""}` : "—"}
+ ·
+ {formatViewCount(storyline.view_count)} views
+ ·
+ {priceInfo ? (
+
+ {formatPrice(priceInfo.pricePerToken)} {RESERVE_LABEL}
+ {plotUsd != null && (
+ (≈ {formatUsdValue(Number(priceInfo.pricePerToken) * plotUsd)})
+ )}
+
+ ) : (
+ —
+ )}
+ {storyline.block_timestamp && (
+ <>
+ ·
+
+ {new Date(storyline.block_timestamp).toLocaleDateString("en-US", {
+ month: "short",
+ day: "numeric",
+ year: "numeric",
+ })}
+
+ >
)}
- {storyline.block_timestamp && (
-
- Created{" "}
- {new Date(storyline.block_timestamp).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })}
-
+ {/* Deadline countdown — own profile only, active storylines */}
+ {isOwnProfile && !storyline.sunset && storyline.last_plot_time && (
+
)}
{/* Genre prompt — own profile only, when genre not set */}
@@ -899,30 +913,33 @@ function StoryRow({
/>
)}
- {/* Deadline countdown — own profile only, active storylines */}
- {isOwnProfile && !storyline.sunset && storyline.last_plot_time && (
-
- )}
-
- {/* Token price + TVL — visible to all */}
- {storyline.token_address && (
-
-
- {/* Claim royalties — own profile only */}
- {isOwnProfile && (
-
- )}
+ {/* Claim royalties — own profile only */}
+ {isOwnProfile && storyline.token_address && (
+
+
)}
- {/* Donation history — own profile only */}
- {isOwnProfile && storyline.token_address && (
-
+ {/* Expandable: TVL, donations, donation history */}
+ {storyline.token_address && (
+
+
+ ▶ more details
+ ▼ details
+
+
+
+
+ {isOwnProfile && (
+
+ )}
+
+
)}
);
@@ -1152,13 +1169,20 @@ function StoryDonationCount({ storylineId, tokenAddress }: { storylineId: number
});
if (!data || data.count === 0) {
- return
— donations;
+ return
No donations
;
}
return (
-
- {formatPrice(formatUnits(data.total, 18))} {RESERVE_LABEL}{plotUsd != null && ` (≈ ${formatUsdValue(Number(formatUnits(data.total, 18)) * plotUsd)})`} ({data.count})
-
+
+ Donations
+
+ {formatPrice(formatUnits(data.total, 18))} {RESERVE_LABEL}
+
+ {plotUsd != null && (
+ (≈ {formatUsdValue(Number(formatUnits(data.total, 18)) * plotUsd)})
+ )}
+ ({data.count})
+
);
}