From 797e471aaa77ea9222f2bb5e76e54363a84e2563 Mon Sep 17 00:00:00 2001 From: Cho Young-Hwi Date: Wed, 1 Apr 2026 15:20:11 +0100 Subject: [PATCH 1/2] =?UTF-8?q?[#720]=20Stories=20tab=20v3=20=E2=80=94=20m?= =?UTF-8?q?inimal=20clean=20cards,=20no=20Moleskine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace Moleskine book card design with clean minimal cards: - Primary row: title + genre badge + active status + price (right-aligned) - Secondary row: plots · holders · views · date - TVL and donations visible below - No decorative elements, no toggles - Border-separated items like a financial dashboard - flex-wrap on all rows for mobile safety Co-Authored-By: Claude Opus 4.6 (1M context) --- src/app/profile/[address]/page.tsx | 160 ++++++++++++----------------- 1 file changed, 63 insertions(+), 97 deletions(-) diff --git a/src/app/profile/[address]/page.tsx b/src/app/profile/[address]/page.tsx index c8498020..5b9b9d89 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} 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 && ( + + )}
); } From 05ea2ad0f5d610c4fdd162c3a8f8b4a304f0b2bf Mon Sep 17 00:00:00 2001 From: Cho Young-Hwi Date: Wed, 1 Apr 2026 15:21:27 +0100 Subject: [PATCH 2/2] [#720] Fix holder singularization (1 holder vs N holders) Co-Authored-By: Claude Opus 4.6 (1M context) --- src/app/profile/[address]/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/profile/[address]/page.tsx b/src/app/profile/[address]/page.tsx index 5b9b9d89..22638bb0 100644 --- a/src/app/profile/[address]/page.tsx +++ b/src/app/profile/[address]/page.tsx @@ -856,7 +856,7 @@ function StoryRow({
{storyline.plot_count} {storyline.plot_count === 1 ? "plot" : "plots"} · - {holderCount !== undefined ? `${holderCount} holders` : "—"} + {holderCount !== undefined ? `${holderCount} ${holderCount === 1 ? "holder" : "holders"}` : "—"} · {formatViewCount(storyline.view_count)} views {storyline.block_timestamp && (