From a88719e02db65f518225015b9541c25470dfeb29 Mon Sep 17 00:00:00 2001 From: Yves Gugger Date: Sat, 13 Dec 2025 13:56:40 +0100 Subject: [PATCH] Radar: Techy angular mobile design with more info --- frontend/src/app/terminal/radar/page.tsx | 422 ++++++++++------------- 1 file changed, 183 insertions(+), 239 deletions(-) diff --git a/frontend/src/app/terminal/radar/page.tsx b/frontend/src/app/terminal/radar/page.tsx index 51da293..7427334 100644 --- a/frontend/src/app/terminal/radar/page.tsx +++ b/frontend/src/app/terminal/radar/page.tsx @@ -21,7 +21,6 @@ import { TrendingUp, Settings, Clock, - Wifi, ChevronRight, Sparkles, Radio, @@ -32,7 +31,7 @@ import { Shield, LogOut, Crown, - ChevronDown + ExternalLink } from 'lucide-react' import clsx from 'clsx' import Link from 'next/link' @@ -104,7 +103,6 @@ export default function RadarPage() { }, []) useEffect(() => { - // Wait for auth check to complete, then load data if (!authLoading) { if (isAuthenticated) { loadDashboardData() @@ -216,40 +214,42 @@ export default function RadarPage() {
{/* ═══════════════════════════════════════════════════════════════════════ */} - {/* MOBILE HEADER - Premium App Style */} + {/* MOBILE HEADER - Techy Angular */} {/* ═══════════════════════════════════════════════════════════════════════ */}
-
- {/* Brand */} -
-
-
- -
-
+
+ {/* Top Row: Brand + Menu */} +
+
+
+ Domain Radar
-
-

Radar

-

Live Intelligence

+
+ {marketStats.totalAuctions.toLocaleString()} auctions + {marketStats.endingSoon} ending
- {/* Stats Pills - Compact */} -
-
-
- - {totalDomains} -
+ {/* Stats Grid */} +
+
+
{totalDomains}
+
Tracked
-
-
- - {availableDomains.length} -
+
+
{availableDomains.length}
+
Available
+
+
+
{marketStats.totalAuctions}
+
Auctions
+
+
+
{marketStats.endingSoon}
+
Ending
@@ -258,11 +258,11 @@ export default function RadarPage() { {/* ═══════════════════════════════════════════════════════════════════════ */} {/* SEARCH SECTION */} {/* ═══════════════════════════════════════════════════════════════════════ */} -
+
{/* Desktop Hero Text */}
-
+
Intelligence Hub

@@ -278,27 +278,27 @@ export default function RadarPage() { {/* Desktop Glow */}
-
- {/* Terminal Header - Desktop only */} -
+
+ {/* Terminal Header */} +
Domain Search
-
-
-
+
+
+
- {/* Search Input - App Style */} -
+ {/* Search Input */} +
setSearchQuery(e.target.value)} onFocus={() => setSearchFocused(true)} onBlur={() => setSearchFocused(false)} - 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" + placeholder="example.com" + className="flex-1 bg-transparent px-3 py-4 text-base lg:text-lg text-white placeholder:text-white/20 outline-none font-mono" /> {searchQuery && ( {searchResult.is_available && ( @@ -394,9 +390,9 @@ export default function RadarPage() { href={`https://www.namecheap.com/domains/registration/results/?domain=${searchResult.domain}`} target="_blank" rel="noopener noreferrer" - 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)]" + className="flex-1 py-3 bg-accent text-black text-sm font-bold flex items-center justify-center gap-2 hover:bg-white active:scale-[0.98] transition-all" > - Register Now + Register )} @@ -408,8 +404,8 @@ export default function RadarPage() { {/* Hint */} {!searchResult && ( -

- Type a domain to check status instantly +

+ Enter domain to check availability

)}
@@ -417,113 +413,67 @@ export default function RadarPage() {

- {/* ═══════════════════════════════════════════════════════════════════════ */} - {/* QUICK ACTIONS - Mobile Grid */} - {/* ═══════════════════════════════════════════════════════════════════════ */} -
-
- {[ - { 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.badge !== undefined && item.badge > 0 && ( - - {item.badge} - - )} - - ))} -
-
- - {/* ═══════════════════════════════════════════════════════════════════════ */} - {/* STATUS BAR */} - {/* ═══════════════════════════════════════════════════════════════════════ */} -
-
-
-
- - -
- Live Feed -
-
- {marketStats.totalAuctions.toLocaleString()} total - {marketStats.endingSoon} ending -
-
-
- {/* ═══════════════════════════════════════════════════════════════════════ */} {/* WATCHLIST PREVIEW */} {/* ═══════════════════════════════════════════════════════════════════════ */} {domains && domains.length > 0 && ( -
-
-

+
+
+
- Your Watchlist -

- + Your Watchlist + ({domains.length}) +
+ Manage
-
+ {/* Domain Grid */} +
{domains.slice(0, 6).map((domain) => ( -
- {domain.is_available ? ( - - ) : ( - - )} -
-
-
- {domain.name} +
+
+ {domain.is_available ? ( + + ) : ( + + )}
+
+
{domain.name}
+
+ {domain.registrar || 'Unknown registrar'} +
+
+
+
- {domain.is_available ? 'Available!' : 'Monitoring'} + {domain.is_available ? 'AVAILABLE' : 'TAKEN'}
+ {domain.last_checked && ( +
+ {new Date(domain.last_checked).toLocaleDateString()} +
+ )}
- {domain.is_available && ( - - GET IT - - )} ))}
@@ -531,7 +481,7 @@ export default function RadarPage() { {domains.length > 6 && ( View all {domains.length} domains @@ -541,16 +491,17 @@ export default function RadarPage() { )} {/* ═══════════════════════════════════════════════════════════════════════ */} - {/* HOT AUCTIONS - Feed Style */} + {/* HOT AUCTIONS */} {/* ═══════════════════════════════════════════════════════════════════════ */} -
-
-

+
+
+
- Live Auctions -

- - See all + Live Auctions + ({hotAuctions.length}) +
+ + View all
@@ -560,44 +511,47 @@ export default function RadarPage() {
) : hotAuctions.length > 0 ? ( -
+
{hotAuctions.map((auction, i) => ( -
- -
-
-
- {auction.domain} +
+
+
-
- {auction.platform} - - - - {auction.time_remaining} - +
+
+ {auction.domain} +
+
+ {auction.platform} + | + + + {auction.time_remaining} + +
-
- ) : ( -
+
-

No active auctions

+

No active auctions

)} @@ -627,110 +581,107 @@ export default function RadarPage() { {/* ═══════════════════════════════════════════════════════════════════════ */} - {/* MOBILE BOTTOM NAV - Frosted Glass */} + {/* MOBILE BOTTOM NAV */} {/* ═══════════════════════════════════════════════════════════════════════ */} {/* ═══════════════════════════════════════════════════════════════════════ */} - {/* MOBILE DRAWER MENU - Slide Over */} + {/* MOBILE DRAWER */} {/* ═══════════════════════════════════════════════════════════════════════ */} {menuOpen && (
{/* Backdrop */}
setMenuOpen(false)} /> {/* Drawer Panel */} -
+
{/* Drawer Header */} -
+
- Pounce + Pounce
-

POUNCE

-

Terminal

+

POUNCE

+

Terminal v1.0

{/* Navigation Sections */} -
+
{drawerNavSections.map((section) => ( -
-
-
- {section.title} +
+
+
+ {section.title}
-
+
{section.items.map((item: any) => ( setMenuOpen(false)} - 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" + className="flex items-center gap-3 px-4 py-2.5 text-white/60 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 Group */} -
+ {/* Settings */} +
setMenuOpen(false)} - className="flex items-center gap-3 py-3 text-white/60 active:text-white transition-colors" + className="flex items-center gap-3 py-2.5 text-white/50 active:text-white transition-colors" > - + Settings @@ -738,33 +689,26 @@ export default function RadarPage() { setMenuOpen(false)} - className="flex items-center gap-3 py-3 text-amber-500/80 active:text-amber-400 transition-colors" + className="flex items-center gap-3 py-2.5 text-amber-500/70 active:text-amber-400 transition-colors" > - - Admin Panel + + Admin )}
- {/* User Card - Bottom */} -
-
-
- + {/* User Card */} +
+
+
+

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

-

- {tierName} Plan -

+

{tierName}

@@ -772,18 +716,18 @@ export default function RadarPage() { setMenuOpen(false)} - 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" + className="flex items-center justify-center gap-2 w-full py-2.5 bg-accent text-black text-xs font-bold uppercase tracking-wider active:scale-[0.98] transition-all mb-2" > - - Upgrade Now + + Upgrade )}