@@ -12,6 +12,16 @@ import AnimatedButton from "@/components/ui/AnimatedButton";
1212import StatCard from "@/components/ui/StatCard" ;
1313import TrustScoreRing from "@/components/ui/TrustScoreRing" ;
1414import { useAuth } from "@/hooks/useAuth" ;
15+ import {
16+ BarChart3 ,
17+ CircleDollarSign ,
18+ ShieldCheck ,
19+ Wallet ,
20+ Copy ,
21+ Building2 ,
22+ ChevronRight ,
23+ ExternalLink ,
24+ } from "lucide-react" ;
1525import {
1626 upsertProfile ,
1727 getProfile ,
@@ -376,15 +386,15 @@ function Overview() {
376386 label = "Active Funds"
377387 value = { funds . length }
378388 delay = { 0.05 }
379- icon = { < span > 📊 </ span > }
389+ icon = { < BarChart3 size = { 16 } / >}
380390 accent = "#60a5fa"
381391 />
382392 < StatCard
383393 label = "Contributions"
384394 value = { contribs . length }
385395 suffix = "paid"
386396 delay = { 0.1 }
387- icon = { < span > 💰 </ span > }
397+ icon = { < CircleDollarSign size = { 16 } / >}
388398 accent = "#f59e0b"
389399 />
390400 { risk ? (
@@ -452,7 +462,7 @@ function Overview() {
452462 label = "Trust Score"
453463 value = "—"
454464 delay = { 0.15 }
455- icon = { < span > 🛡️ </ span > }
465+ icon = { < ShieldCheck size = { 16 } / >}
456466 accent = "#22c55e"
457467 />
458468 ) }
@@ -464,32 +474,63 @@ function Overview() {
464474 < div style = { { display : "flex" , flexWrap : "wrap" , justifyContent : "space-between" , alignItems : "center" , gap : 16 } } >
465475 < div style = { { flex : 1 , minWidth : 200 } } >
466476 < div style = { { display : "flex" , alignItems : "center" , gap : 6 , marginBottom : 8 } } >
467- < span style = { { fontSize : 14 } } > 👛 </ span >
477+ < Wallet size = { 14 } / >
468478 < span style = { { fontSize : 10 , fontWeight : 700 , color : "var(--color-text-muted)" , textTransform : "uppercase" , letterSpacing : 1 } } > Your Custodial Wallet</ span >
469479 </ div >
470480 < div style = { { display : "flex" , alignItems : "center" , gap : 8 , background : "var(--color-bg-subtle)" , padding : "8px 12px" , borderRadius : 8 , boxShadow : "inset 0 1px 3px rgba(0,0,0,0.2)" } } >
471481 < code style = { { fontSize : 12 , color : "var(--color-text-secondary)" , fontFamily : "monospace" , overflow : "hidden" , textOverflow : "ellipsis" } } >
472482 { wallet ?. address || "Loading..." }
473483 </ code >
474484 { wallet ?. address && (
475- < button
476- onClick = { ( ) => {
477- navigator . clipboard . writeText ( wallet . address ) ;
478- alert ( "Address copied to clipboard!" ) ;
479- } }
480- style = { { background : "transparent" , border : "none" , cursor : "pointer" , fontSize : 14 , opacity : 0.6 , padding : 4 } }
481- title = "Copy Address"
482- >
483- 📋
484- </ button >
485+ < div style = { { display : "flex" , alignItems : "center" , gap : 4 } } >
486+ < button
487+ onClick = { ( ) => {
488+ navigator . clipboard . writeText ( wallet . address ) ;
489+ alert ( "Address copied to clipboard!" ) ;
490+ } }
491+ style = { { background : "transparent" , border : "none" , cursor : "pointer" , fontSize : 14 , opacity : 0.6 , padding : 4 , color : "var(--color-text)" } }
492+ title = "Copy Address"
493+ >
494+ < Copy size = { 14 } />
495+ </ button >
496+ < a
497+ href = { `https://amoy.polygonscan.com/address/${ wallet . address } #tokentxns` }
498+ target = "_blank"
499+ rel = "noopener noreferrer"
500+ style = { {
501+ fontSize : 10 ,
502+ fontWeight : 700 ,
503+ color : "var(--color-accent)" ,
504+ textDecoration : "none" ,
505+ padding : "6px 12px" ,
506+ borderRadius : 6 ,
507+ background : "rgba(249,115,22,0.1)" ,
508+ display : "inline-flex" ,
509+ alignItems : "center" ,
510+ gap : 6 ,
511+ transition : "all 0.2s" ,
512+ border : "1px solid rgba(249,115,22,0.2)"
513+ } }
514+ onMouseOver = { ( e ) => {
515+ e . currentTarget . style . background = "rgba(249,115,22,0.2)" ;
516+ e . currentTarget . style . borderColor = "rgba(249,115,22,0.4)" ;
517+ } }
518+ onMouseOut = { ( e ) => {
519+ e . currentTarget . style . background = "rgba(249,115,22,0.1)" ;
520+ e . currentTarget . style . borderColor = "rgba(249,115,22,0.2)" ;
521+ } }
522+ >
523+ View Ledger < ExternalLink size = { 10 } />
524+ </ a >
525+ </ div >
485526 ) }
486527 </ div >
487528 </ div >
488529
489530 < div style = { { textAlign : "right" } } >
490531 < span style = { { fontSize : 10 , fontWeight : 700 , color : "var(--color-text-muted)" , textTransform : "uppercase" , letterSpacing : 1 } } > Token Balance</ span >
491532 < p style = { { fontSize : 28 , fontWeight : 800 , margin : "4px 0 0" , color : "var(--color-text)" , letterSpacing : - 1 } } >
492- { wallet ? wallet . balance . toLocaleString ( ) : "—" }
533+ { wallet ? wallet . balance . toLocaleString ( ) : "—" }
493534 < span style = { { fontSize : 14 , color : "var(--color-accent)" , marginLeft : 6 , fontWeight : 700 } } > CHIT</ span >
494535 </ p >
495536 </ div >
@@ -547,7 +588,7 @@ function Overview() {
547588 transition = { { repeat : Infinity , duration : 3 , ease : "easeInOut" } }
548589 style = { { fontSize : 32 , display : "inline-block" } }
549590 >
550- 🏦
591+ < Building2 size = { 32 } />
551592 </ motion . span >
552593 < p
553594 style = { {
@@ -575,7 +616,9 @@ function Overview() {
575616 window . location . href = "/funds" ;
576617 } }
577618 >
578- Browse Funds →
619+ < span style = { { display : "flex" , alignItems : "center" , gap : 4 } } >
620+ Browse Funds < ChevronRight size = { 14 } />
621+ </ span >
579622 </ AnimatedButton >
580623 </ motion . div >
581624 ) : (
@@ -638,8 +681,8 @@ function Overview() {
638681 const blockchainStatus = contribution . blockchain_status ;
639682 const status =
640683 c . status === "paid" &&
641- blockchainStatus &&
642- blockchainStatus !== "confirmed"
684+ blockchainStatus &&
685+ blockchainStatus !== "confirmed"
643686 ? blockchainStatus
644687 : c . status ;
645688 const style =
@@ -652,9 +695,9 @@ function Overview() {
652695 : status === "depositing to pool"
653696 ? { color : "#f472b6" , bg : "rgba(244,114,182,0.08)" }
654697 : {
655- color : "var(--color-text-secondary)" ,
656- bg : "var(--color-bg-subtle)" ,
657- } ;
698+ color : "var(--color-text-secondary)" ,
699+ bg : "var(--color-bg-subtle)" ,
700+ } ;
658701
659702 return (
660703 < GlassCard
@@ -1135,6 +1178,7 @@ function Profile({ onUpdate }: { onUpdate: () => void }) {
11351178 onChange = { up ( "phone_number" ) }
11361179 required
11371180 disabled = { ! edit }
1181+
11381182 placeholder = "+91 9876543210"
11391183 />
11401184 < Input
0 commit comments