44 * and steel for taking part. Server component (no interactivity) — it just lays
55 * out the pre-rendered coin art the pure core resolves.
66 *
7- * Empty by design until a Major concludes (coins mint on archive). An empty
8- * shelf stays hidden entirely — no explainer, no empty rack (PHA-1283: let the
9- * shelf speak for itself once coins land). It surfaces only when there's a coin
10- * to show .
7+ * Empty by design until a Major concludes (coins mint on archive). On your own
8+ * profile the velvet display case still shows with empty recesses — no explainer
9+ * text (PHA-1283: let people figure it out), just an obvious home for coins to
10+ * land. On someone else's it stays hidden so a fresh profile isn't cluttered .
1111 */
1212
1313import { type ChallengeCoin } from "@/lib/challenge-coin-core" ;
@@ -26,12 +26,32 @@ function ordSuffix(n: number): string {
2626
2727export function ChallengeCoinShelf ( {
2828 coins,
29+ isSelf,
2930} : {
3031 coins : ChallengeCoin [ ] ;
32+ isSelf : boolean ;
3133} ) {
32- // Nothing to show until the first coin mints — no explainer, no empty rack
33- // (PHA-1283). The populated shelf below is self-explanatory.
34- if ( coins . length === 0 ) return null ;
34+ // Empty velvet case on your own profile — the display case stays so there's an
35+ // obvious home for coins, but the explainer text is gone (PHA-1283). Three
36+ // empty recesses read as "a coin sits in each of these" without spelling it
37+ // out. Hidden on other people's profiles so a fresh one isn't cluttered.
38+ if ( coins . length === 0 ) {
39+ if ( ! isSelf ) return null ;
40+ return (
41+ < section className = "coin-shelf" >
42+ < div className = "coin-shelf-head" >
43+ < span className = "eyebrow-mono" > CHALLENGE COINS</ span >
44+ </ div >
45+ < div className = "coin-shelf-grid" aria-hidden = "true" >
46+ { [ 0 , 1 , 2 ] . map ( ( i ) => (
47+ < div key = { i } className = "coin-collectible" >
48+ < div className = "coin-collectible-disc coin-slot-empty" />
49+ </ div >
50+ ) ) }
51+ </ div >
52+ </ section >
53+ ) ;
54+ }
3555
3656 return (
3757 < section className = "coin-shelf" >
0 commit comments