From 38346ca0a6d00058141277c795523ce40297a244 Mon Sep 17 00:00:00 2001 From: Cho Young-Hwi Date: Thu, 2 Apr 2026 10:21:07 +0100 Subject: [PATCH 1/2] [#742] Writer + Reader tab v10: active tag position, portfolio boxes, donation boxes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Move active/complete tag after deadline counter (Deadline: 1d 7h · active) 2. Reader Portfolio summary: 4-box grid (PLOT value, USD, Holdings, Best 24h) 3. Reader Donations: bordered box layout (Received, Given) with per-story rows below Fixes #742 Co-Authored-By: Claude Opus 4.6 (1M context) --- src/app/profile/[address]/page.tsx | 61 ++++++++++++++---------------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/src/app/profile/[address]/page.tsx b/src/app/profile/[address]/page.tsx index 9a49a2ff..144fc234 100644 --- a/src/app/profile/[address]/page.tsx +++ b/src/app/profile/[address]/page.tsx @@ -919,17 +919,15 @@ function StoryRow({ {/* Status + Created + Deadline */}
+ {!storyline.sunset && storyline.last_plot_time && ( + + )} + · {storyline.sunset ? ( complete ) : ( active )} - {!storyline.sunset && storyline.last_plot_time && ( - <> - · - - - )}
Created:{" "} @@ -1416,24 +1414,25 @@ function PortfolioTab({ address, isOwnProfile }: { address: string; isOwnProfile <>

Portfolio

-
-
- Value:{" "} - {formatPrice(formatUnits(totalValue, reserveDecimals))} {RESERVE_LABEL} - {plotUsd && ({formatUsdValue(Number(formatUnits(totalValue, reserveDecimals)) * plotUsd)})} +
+
+
{formatPrice(formatUnits(totalValue, reserveDecimals))}
+
{RESERVE_LABEL}
-
Tokens: {holdings!.length}
- {bestPick && bestPick.priceChange !== null && ( -
- Best 24h:{" "} - - {bestPick.storyline.title.slice(0, 20)}{bestPick.storyline.title.length > 20 ? "..." : ""} - - = 0 ? "text-accent" : "text-error"}`}> - {bestPick.priceChange >= 0 ? "+" : ""}{bestPick.priceChange.toFixed(1)}% - +
+
{plotUsd ? formatUsdValue(Number(formatUnits(totalValue, reserveDecimals)) * plotUsd) : "—"}
+
USD
+
+
+
{holdings!.length}
+
Holdings
+
+
+
= 0 ? "text-accent" : "text-error") : "text-foreground"}`}> + {bestPick && bestPick.priceChange !== null ? `${bestPick.priceChange >= 0 ? "+" : ""}${bestPick.priceChange.toFixed(1)}%` : "—"}
- )} +
Best 24h
+
@@ -1518,21 +1517,17 @@ function PortfolioTab({ address, isOwnProfile }: { address: string; isOwnProfile {(hasDonationsReceived || (isOwnProfile && hasDonationsGiven)) && (

Donations

-
+
{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"} +
+
{formatPrice(formatUnits(donationsReceived!.total, 18))}
+
Received · {donationsReceived!.count}
)} {isOwnProfile && hasDonationsGiven && ( -
- Given:{" "} - {formatPrice(formatUnits(totalDonated, 18))} {RESERVE_LABEL} - {plotUsd != null && totalDonated > BigInt(0) && ({formatUsdValue(Number(formatUnits(totalDonated, 18)) * plotUsd)})} - · {donationTotalCount} {donationTotalCount === 1 ? "donation" : "donations"} +
+
{formatPrice(formatUnits(totalDonated, 18))}
+
Given · {donationTotalCount}
)}
From 1d6d07e8a5f3908840988c96c7b7f4e9755deba0 Mon Sep 17 00:00:00 2001 From: Cho Young-Hwi Date: Thu, 2 Apr 2026 10:22:47 +0100 Subject: [PATCH 2/2] [#742] Fix dot separator: only show when deadline is present Co-Authored-By: Claude Opus 4.6 (1M context) --- src/app/profile/[address]/page.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/app/profile/[address]/page.tsx b/src/app/profile/[address]/page.tsx index 144fc234..b6873c0d 100644 --- a/src/app/profile/[address]/page.tsx +++ b/src/app/profile/[address]/page.tsx @@ -920,9 +920,11 @@ function StoryRow({
{!storyline.sunset && storyline.last_plot_time && ( - + <> + + · + )} - · {storyline.sunset ? ( complete ) : (