From 1a75802baa033ddb360b31b628b51f4e3abd1aa4 Mon Sep 17 00:00:00 2001 From: Yves Gugger Date: Sat, 13 Dec 2025 13:26:10 +0100 Subject: [PATCH] Radar: Perfected mobile design - Native App Feel --- frontend/src/app/terminal/radar/page.tsx | 298 +++++++++++------------ 1 file changed, 145 insertions(+), 153 deletions(-) diff --git a/frontend/src/app/terminal/radar/page.tsx b/frontend/src/app/terminal/radar/page.tsx index f375dac..83dbd63 100644 --- a/frontend/src/app/terminal/radar/page.tsx +++ b/frontend/src/app/terminal/radar/page.tsx @@ -207,32 +207,37 @@ export default function RadarPage() { {/* ═══════════════════════════════════════════════════════════════════════ */} {/* MOBILE HEADER - Premium App Style */} {/* ═══════════════════════════════════════════════════════════════════════ */} -
-
-
- {/* Brand */} -
-
-
- -
-
+
+
+ {/* Brand */} +
+
+
+
-
-

Radar

-

Domain Intelligence

+
+
+
+

Radar

+

Live Intelligence

+
+
+ + {/* Stats Pills - Compact */} +
+
+
+ + {totalDomains}
- - {/* Stats Pills */} -
-
-
{totalDomains}
-
tracking
-
-
-
{availableDomains.length}
-
available
+
+
+ + {availableDomains.length}
@@ -242,7 +247,7 @@ export default function RadarPage() { {/* ═══════════════════════════════════════════════════════════════════════ */} {/* SEARCH SECTION */} {/* ═══════════════════════════════════════════════════════════════════════ */} -
+
{/* Desktop Hero Text */}
@@ -262,7 +267,7 @@ export default function RadarPage() { {/* Desktop Glow */}
-
+
{/* Terminal Header - Desktop only */}
@@ -276,13 +281,13 @@ export default function RadarPage() {
- {/* Search Input */} -
+ {/* Search Input - App Style */} +
setSearchQuery(e.target.value)} onFocus={() => setSearchFocused(true)} onBlur={() => setSearchFocused(false)} - placeholder="Search any domain..." - className="flex-1 bg-transparent px-4 py-4 lg:py-5 text-base lg:text-lg text-white placeholder:text-white/25 outline-none" + placeholder="Search domain..." + className="flex-1 bg-transparent px-3 py-4 text-base lg:text-lg text-white placeholder:text-white/20 outline-none font-medium" /> {searchQuery && ( {searchResult.is_available && ( @@ -378,10 +383,10 @@ export default function RadarPage() { href={`https://www.namecheap.com/domains/registration/results/?domain=${searchResult.domain}`} target="_blank" rel="noopener noreferrer" - className="flex-1 py-4 bg-accent text-black text-sm font-bold flex items-center justify-center gap-2 hover:bg-white active:scale-[0.98] transition-all" + className="w-full py-3.5 bg-accent text-[#020202] text-sm font-bold rounded-lg flex items-center justify-center gap-2 hover:bg-white active:scale-[0.98] transition-all shadow-[0_0_20px_-5px_rgba(16,185,129,0.4)]" > Register Now - + )}
@@ -392,8 +397,8 @@ export default function RadarPage() { {/* Hint */} {!searchResult && ( -

- Enter a domain to check availability instantly +

+ Type a domain to check status instantly

)}
@@ -402,29 +407,29 @@ export default function RadarPage() {
{/* ═══════════════════════════════════════════════════════════════════════ */} - {/* QUICK ACTIONS - Mobile */} + {/* QUICK ACTIONS - Mobile Grid */} {/* ═══════════════════════════════════════════════════════════════════════ */} -
-
+
+
{[ - { href: '/terminal/watchlist', icon: Eye, label: 'Watchlist', badge: availableDomains.length, accent: true }, - { href: '/terminal/market', icon: Gavel, label: 'Market' }, - { href: '/terminal/intel', icon: TrendingUp, label: 'Intel' }, + { href: '/terminal/watchlist', icon: Eye, label: 'Watchlist', badge: availableDomains.length, color: 'text-emerald-400', bg: 'bg-emerald-400/10', border: 'border-emerald-400/20' }, + { href: '/terminal/market', icon: Gavel, label: 'Market', color: 'text-blue-400', bg: 'bg-blue-400/10', border: 'border-blue-400/20' }, + { href: '/terminal/intel', icon: TrendingUp, label: 'Intel', color: 'text-amber-400', bg: 'bg-amber-400/10', border: 'border-amber-400/20' }, ].map((item) => ( - - {item.label} +
+ +
+ {item.label} {item.badge !== undefined && item.badge > 0 && ( - + {item.badge} )} @@ -436,59 +441,62 @@ export default function RadarPage() { {/* ═══════════════════════════════════════════════════════════════════════ */} {/* STATUS BAR */} {/* ═══════════════════════════════════════════════════════════════════════ */} -
+
- - Live monitoring +
+ + +
+ Live Feed
-
- {marketStats.totalAuctions.toLocaleString()} auctions - {marketStats.endingSoon} ending soon +
+ {marketStats.totalAuctions.toLocaleString()} total + {marketStats.endingSoon} ending
{/* ═══════════════════════════════════════════════════════════════════════ */} - {/* HOT AUCTIONS */} + {/* HOT AUCTIONS - Feed Style */} {/* ═══════════════════════════════════════════════════════════════════════ */} -
-
-

+
+
+

- Hot Auctions + Live Auctions

- - View all + + See all
{loadingData ? ( -
{/* ═══════════════════════════════════════════════════════════════════════ */} - {/* MOBILE BOTTOM NAV - Premium Tab Bar */} + {/* MOBILE BOTTOM NAV - Frosted Glass */} {/* ═══════════════════════════════════════════════════════════════════════ */} {/* ═══════════════════════════════════════════════════════════════════════ */} - {/* MOBILE DRAWER MENU */} + {/* MOBILE DRAWER MENU - Slide Over */} {/* ═══════════════════════════════════════════════════════════════════════ */} {menuOpen && (
{/* Backdrop */}
setMenuOpen(false)} /> {/* Drawer Panel */} -
+
{/* Drawer Header */}
Pounce
-

Pounce

-

Terminal

+

POUNCE

+

Terminal

{/* Navigation Sections */} -
+
{drawerNavSections.map((section) => ( -
-
-
- {section.title} +
+
+
+ {section.title}
-
+
{section.items.map((item: any) => ( setMenuOpen(false)} - className="flex items-center gap-3 px-5 py-3 text-white/60 hover:text-white hover:bg-white/[0.03] active:bg-white/[0.05] transition-colors" + className="flex items-center gap-4 px-6 py-3.5 text-white/70 active:text-white active:bg-white/[0.03] transition-colors border-l-2 border-transparent active:border-accent" > {item.label} {item.isNew && ( - - New + + NEW )} - + ))}
))} - {/* Settings */} -
+ {/* Settings Group */} +
setMenuOpen(false)} - className="flex items-center gap-3 px-5 py-3 text-white/60 hover:text-white hover:bg-white/[0.03] active:bg-white/[0.05] transition-colors" + className="flex items-center gap-3 py-3 text-white/60 active:text-white transition-colors" > - - Settings - + + Settings {user?.is_admin && ( setMenuOpen(false)} - className="flex items-center gap-3 px-5 py-3 text-amber-500/70 hover:text-amber-400 hover:bg-amber-500/5 active:bg-amber-500/10 transition-colors" + className="flex items-center gap-3 py-3 text-amber-500/80 active:text-amber-400 transition-colors" > - Admin Panel - + Admin Panel )}
- {/* User Card */} -
+ {/* User Card - Bottom */} +
-
+
-

+

{user?.name || user?.email?.split('@')[0] || 'User'}

- {tierName} + {tierName} Plan

- {/* Usage Bar */} -
-
- Usage - {subscription?.domains_used || 0}/{subscription?.domain_limit || 5} -
-
-
-
-
- {tierName === 'Scout' && ( setMenuOpen(false)} - className="flex items-center justify-center gap-2 w-full py-3 bg-accent text-black text-sm font-bold hover:bg-white active:scale-[0.98] transition-all mb-3" + className="flex items-center justify-center gap-2 w-full py-3 bg-white text-black text-sm font-bold rounded-lg active:scale-[0.98] transition-all mb-3 shadow-lg" > - - Upgrade Plan + + Upgrade Now )}