+
Royalties
+ {/* Claimable row */}
+
+ Claimable:{" "}
+ BigInt(0) ? "text-accent" : "text-foreground"}`}>
+ {formatTruncated(unclaimed, decimals)} {RESERVE_LABEL}
+
+ {plotUsd != null && unclaimed > BigInt(0) && (
+ ({formatUsdValue(parseFloat(formatUnits(unclaimed, decimals)) * plotUsd)})
+ )}
+
+ {/* Claim button */}
+
+
+ {/* Info tooltip */}
+
+ {showTooltip && (
+
+
Royalties
+
+ You earn a share of every trade on your storyline's token.
+
+
Requires at least 2 plots ({plotCount}/2){eligible && " \u2713"}
+
+ )}
+ {/* Claimed row */}
+ {totalClaimed > BigInt(0) && (
+
+ Claimed:{" "}
+
+ {formatTruncated(totalClaimed, decimals)} {RESERVE_LABEL}
+
+ {plotUsd != null && (
+ ({formatUsdValue(parseFloat(formatUnits(totalClaimed, decimals)) * plotUsd)})
+ )}
+
+ )}
{!eligible && txState === "idle" && (
-
- Chain at least 2 plots to enable royalty claims ({plotCount}/2)
+
+ Chain at least 2 plots to enable claims ({plotCount}/2)
)}
{eligible && unclaimed === BigInt(0) && txState === "idle" && totalClaimed === BigInt(0) && (
-
- No royalties yet — royalties accrue when readers trade your token
+
+ No royalties yet — accrue when readers trade your token
)}
{txHash && txState === "done" && (
-
- Claimed {formatTruncated(claimedAmount, decimals)} {RESERVE_LABEL}{plotUsd != null ? ` (≈ ${formatUsdValue(parseFloat(formatUnits(claimedAmount, decimals)) * plotUsd)})` : ""} —{" "}
- tx:{" "}
-
+
+ Claimed {formatTruncated(claimedAmount, decimals)} {RESERVE_LABEL} —{" "}
+
{txHash.slice(0, 10)}...{txHash.slice(-8)}
)}
- {error && {error}
}
+ {error && {error}
}
);
}
diff --git a/src/components/DeadlineCountdown.tsx b/src/components/DeadlineCountdown.tsx
index de829df8..cc934e41 100644
--- a/src/components/DeadlineCountdown.tsx
+++ b/src/components/DeadlineCountdown.tsx
@@ -18,8 +18,8 @@ export function DeadlineCountdown({ lastPlotTime }: { lastPlotTime: string }) {
if (remaining === null) {
return (
-
-
Next plot due in
+
+ Deadline:{" "}
--
);
@@ -27,8 +27,9 @@ export function DeadlineCountdown({ lastPlotTime }: { lastPlotTime: string }) {
if (remaining <= 0) {
return (
-
-
Deadline expired
+
+ Deadline:{" "}
+ expired
);
}
@@ -48,8 +49,8 @@ export function DeadlineCountdown({ lastPlotTime }: { lastPlotTime: string }) {
}
return (
-
-
Next plot due in
+
+ Deadline:{" "}
{formatted}
);
diff --git a/src/components/WriterTradingStats.tsx b/src/components/WriterTradingStats.tsx
index 09cba282..8e105692 100644
--- a/src/components/WriterTradingStats.tsx
+++ b/src/components/WriterTradingStats.tsx
@@ -44,23 +44,15 @@ export function WriterTradingStats({ storyline, plotUsd }: WriterTradingStatsPro
return (
-
-
Price
-
- {data ? `${formatPrice(data.price)} ${RESERVE_LABEL}` : "—"}
- {data && plotUsd && (
- ({formatUsdValue(parseFloat(data.price) * plotUsd)})
- )}
-
+
+ Price:{" "}
+ {data ? `${formatPrice(data.price)} ${RESERVE_LABEL}` : "—"}
+ {data && plotUsd && ({formatUsdValue(parseFloat(data.price) * plotUsd)})}
-
-
TVL
-
- {data ? `${formatPrice(data.tvl)} ${RESERVE_LABEL}` : "—"}
- {data && plotUsd && (
- ({formatUsdValue(parseFloat(data.tvl) * plotUsd)})
- )}
-
+
+ TVL:{" "}
+ {data ? `${formatPrice(data.tvl)} ${RESERVE_LABEL}` : "—"}
+ {data && plotUsd && ({formatUsdValue(parseFloat(data.tvl) * plotUsd)})}
);