diff --git a/src/app/profile/[address]/page.tsx b/src/app/profile/[address]/page.tsx index c8498020..22638bb0 100644 --- a/src/app/profile/[address]/page.tsx +++ b/src/app/profile/[address]/page.tsx @@ -750,7 +750,7 @@ function StoriesTab({ )} {/* Story portfolio */} -
+
{storylines.map((s) => ( - {/* Moleskine book card */} - -
+ {/* Primary: title + badges + price */} +
+ - {/* Elastic band */} -
- {/* Top: genre */} -
- - {storyline.genre || "Uncategorized"} - -
- {/* Center: title */} -
-

- {storyline.title} -

-
- {/* Bottom: plot count + status */} -
- - {storyline.plot_count} {storyline.plot_count === 1 ? "plot" : "plots"} - - {storyline.sunset ? ( - - complete - - ) : ( - - active - + {storyline.title} + + {storyline.genre && ( + + {storyline.genre} + + )} + {storyline.sunset ? ( + complete + ) : ( + active + )} + {priceInfo && ( + + {formatPrice(priceInfo.pricePerToken)} {RESERVE_LABEL} + {plotUsd != null && ( + (≈ {formatUsdValue(Number(priceInfo.pricePerToken) * plotUsd)}) )} -
-
- - - {/* Info below/beside the book — all visible, no toggles */} -
- {/* Stats row */} -
- {priceInfo ? ( - - Price: {formatPrice(priceInfo.pricePerToken)} {RESERVE_LABEL} - {plotUsd != null && (≈ {formatUsdValue(Number(priceInfo.pricePerToken) * plotUsd)})} - - ) : ( - Price: — - )} - · - {holderCount !== undefined ? `${holderCount} holder${holderCount !== 1 ? "s" : ""}` : "—"} - · - {formatViewCount(storyline.view_count)} views - {storyline.block_timestamp && ( - <> - · - - {new Date(storyline.block_timestamp).toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" })} - - - )} -
+ + )} +
- {/* TVL + trading stats */} - {storyline.token_address && ( - + {/* Secondary: compact stats */} +
+ {storyline.plot_count} {storyline.plot_count === 1 ? "plot" : "plots"} + · + {holderCount !== undefined ? `${holderCount} ${holderCount === 1 ? "holder" : "holders"}` : "—"} + · + {formatViewCount(storyline.view_count)} views + {storyline.block_timestamp && ( + <> + · + {new Date(storyline.block_timestamp).toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" })} + )} +
- {/* Donations */} - {storyline.token_address && ( + {/* TVL + donations */} + {storyline.token_address && ( +
+ - )} +
+ )} - {/* Deadline countdown */} - {!storyline.sunset && storyline.last_plot_time && ( + {/* Deadline */} + {!storyline.sunset && storyline.last_plot_time && ( +
- )} +
+ )} - {/* Genre prompt */} - {isOwnProfile && !storyline.genre && ( + {/* Owner-only: genre edit, royalties, donation history */} + {isOwnProfile && !storyline.genre && ( +
- )} - - {/* Claim royalties */} - {isOwnProfile && storyline.token_address && ( +
+ )} + {isOwnProfile && storyline.token_address && ( +
- )} - - {/* Donation history */} - {isOwnProfile && storyline.token_address && ( - - )} -
+
+ )} + {isOwnProfile && storyline.token_address && ( + + )}
); }