diff --git a/frontend/src/app/dashboard/page.tsx b/frontend/src/app/dashboard/page.tsx index ea4a867..b85206d 100644 --- a/frontend/src/app/dashboard/page.tsx +++ b/frontend/src/app/dashboard/page.tsx @@ -36,10 +36,6 @@ import { Globe, ArrowUpRight, ArrowDownRight, - Radio, - CircleCheck, - CircleX, - CircleAlert, } from 'lucide-react' import clsx from 'clsx' import Link from 'next/link' @@ -374,59 +370,12 @@ export default function DashboardPage() { const isProOrHigher = tierName === 'Professional' || tierName === 'Enterprise' || tierName === 'Trader' || tierName === 'Tycoon' const isEnterprise = tierName === 'Enterprise' || tierName === 'Tycoon' - // Get domain status with icon - const getDomainStatus = (domain: any) => { - const exp = formatExpirationDate(domain.expiration_date) - - if (domain.is_available) { - return { - icon: CircleCheck, - label: 'Available', - color: 'text-emerald-400', - bg: 'bg-emerald-400/10', - ring: 'ring-emerald-400/30', - pulse: false - } - } - - if (exp?.urgent) { - return { - icon: CircleAlert, - label: 'Expiring', - color: 'text-amber-400', - bg: 'bg-amber-400/10', - ring: 'ring-amber-400/30', - pulse: true - } - } - - if (domain.notify_on_available) { - return { - icon: Radio, - label: 'Monitoring', - color: 'text-cyan-400', - bg: 'bg-cyan-400/10', - ring: 'ring-cyan-400/30', - pulse: true - } - } - - return { - icon: CircleX, - label: 'Registered', - color: 'text-foreground-subtle', - bg: 'bg-foreground/5', - ring: 'ring-foreground/10', - pulse: false - } - } - return (
-
-
+
+
{/* Header */}
@@ -512,49 +461,26 @@ export default function DashboardPage() {
{/* Stats Row */}
-
-
-
- -
-

Tracked

-
+
+

Tracked

{domains.length}

-
-
-
- -
-

Available

-
-

{availableCount}

+
+

Available

+

{availableCount}

-
-
-
- -
-

Monitoring

-
-

{domains.filter(d => d.notify_on_available).length}

+
+

Monitoring

+

{domains.filter(d => d.notify_on_available).length}

0 - ? "bg-amber-500/5 border-amber-500/20 hover:border-amber-500/40" - : "bg-background-secondary/50 border-border hover:border-foreground/20" + ? "bg-warning/5 border-warning/20 hover:border-warning/40" + : "bg-background-secondary border-border hover:border-foreground/20" )}> -
-
0 ? "bg-amber-500/20" : "bg-foreground/10" - )}> - 0 ? "text-amber-400" : "text-foreground-muted")} /> -
-

0 ? "text-amber-400/80" : "text-foreground-muted")}>Expiring

-
-

0 ? "text-amber-400" : "text-foreground")}>{expiringCount}

+

0 ? "text-warning/80" : "text-foreground-muted")}>Expiring

+

0 ? "text-warning" : "text-foreground")}>{expiringCount}

@@ -601,43 +527,40 @@ export default function DashboardPage() { {domains.map((domain) => { const exp = formatExpirationDate(domain.expiration_date) - const status = getDomainStatus(domain) - const StatusIcon = status.icon + const isMonitoring = domain.notify_on_available return ( -
-
- - {status.pulse && ( - +
+
+
+ {isMonitoring && ( + )}
-
- {domain.name} -

{status.label}

-
+ {domain.name}
- {status.label} + {domain.is_available ? 'Available' : isMonitoring ? 'Monitoring' : 'Registered'} {exp ? ( {exp.text} @@ -664,7 +587,7 @@ export default function DashboardPage() { className={clsx( "p-2 rounded-lg transition-all", domain.notify_on_available - ? "text-cyan-400 hover:bg-cyan-400/10" + ? "text-accent hover:bg-accent/10" : "text-foreground-subtle hover:text-foreground hover:bg-foreground/10" )} title={domain.notify_on_available ? "Monitoring active" : "Enable monitoring"} @@ -674,7 +597,7 @@ export default function DashboardPage() { -
@@ -695,62 +618,34 @@ export default function DashboardPage() { {/* Portfolio Stats */} {portfolioSummary && (
-
-
-
- -
-

Total Value

-
+
+

Total Value

{formatCurrency(portfolioSummary.total_value)}

-
-
-
- -
-

Invested

-
-

{formatCurrency(portfolioSummary.total_invested)}

+
+

Invested

+

{formatCurrency(portfolioSummary.total_invested)}

= 0 - ? "bg-emerald-500/5 border-emerald-500/20 hover:border-emerald-500/40" - : "bg-rose-500/5 border-rose-500/20 hover:border-rose-500/40" + ? "bg-accent/5 border-accent/20 hover:border-accent/40" + : "bg-danger/5 border-danger/20 hover:border-danger/40" )}> -
-
= 0 ? "bg-emerald-500/20" : "bg-rose-500/20" - )}> - {portfolioSummary.unrealized_profit >= 0 - ? - : - } -
-

= 0 ? "text-emerald-400/80" : "text-rose-400/80")}>P/L

-
-

= 0 ? "text-emerald-400" : "text-rose-400")}> - {portfolioSummary.unrealized_profit >= 0 ? '+' : ''}{formatCurrency(portfolioSummary.unrealized_profit)} +

= 0 ? "text-accent/80" : "text-danger/80")}>P/L

+

= 0 ? "text-accent" : "text-danger")}> + {portfolioSummary.unrealized_profit >= 0 ? : } + {formatCurrency(Math.abs(portfolioSummary.unrealized_profit))}

= 0 - ? "bg-emerald-500/5 border-emerald-500/20 hover:border-emerald-500/40" - : "bg-rose-500/5 border-rose-500/20 hover:border-rose-500/40" + ? "bg-accent/5 border-accent/20 hover:border-accent/40" + : "bg-danger/5 border-danger/20 hover:border-danger/40" )}> -
-
= 0 ? "bg-emerald-500/20" : "bg-rose-500/20" - )}> - = 0 ? "text-emerald-400" : "text-rose-400")} /> -
-

= 0 ? "text-emerald-400/80" : "text-rose-400/80")}>ROI

-
-

= 0 ? "text-emerald-400" : "text-rose-400")}> +

= 0 ? "text-accent/80" : "text-danger/80")}>ROI

+

= 0 ? "text-accent" : "text-danger")}> {portfolioSummary.overall_roi >= 0 ? '+' : ''}{portfolioSummary.overall_roi.toFixed(1)}%

@@ -817,9 +712,9 @@ export default function DashboardPage() { )} {/* Quick Links */} -
+
-
+
diff --git a/frontend/src/app/settings/page.tsx b/frontend/src/app/settings/page.tsx index d92d6bb..ac28b97 100644 --- a/frontend/src/app/settings/page.tsx +++ b/frontend/src/app/settings/page.tsx @@ -147,24 +147,16 @@ export default function SettingsPage() { ] return ( -
- {/* Ambient glow */} -
-
-
- +
-
-
+
+
{/* Header */} -
-
- -

- Settings -

-
+
+

+ Settings +

Your account. Your rules.

@@ -172,7 +164,7 @@ export default function SettingsPage() { {/* Messages */} {error && ( -
+

{error}

)} -
+
{/* Sidebar - Horizontal scroll on mobile, vertical on desktop */}
{/* Mobile: Horizontal scroll tabs */} @@ -201,10 +193,10 @@ export default function SettingsPage() { key={tab.id} onClick={() => setActiveTab(tab.id)} className={clsx( - "flex items-center gap-2 px-4 py-2.5 text-ui-sm font-medium rounded-xl whitespace-nowrap transition-all", + "flex items-center gap-2 px-5 py-2.5 text-ui font-medium rounded-xl whitespace-nowrap transition-all", activeTab === tab.id - ? "bg-foreground text-background" - : "bg-background-secondary/50 text-foreground-muted hover:text-foreground border border-border" + ? "bg-foreground text-background shadow-lg" + : "bg-background-secondary text-foreground-muted hover:text-foreground border border-border" )} > @@ -214,16 +206,16 @@ export default function SettingsPage() { {/* Desktop: Vertical tabs */} -