From 2e507f5484917711a9a02f780552690a1465993e Mon Sep 17 00:00:00 2001 From: Yves Gugger Date: Fri, 12 Dec 2025 23:19:38 +0100 Subject: [PATCH] Navigation: Radar first, For Sale under Monetize; Settings page redesign --- frontend/src/app/terminal/settings/page.tsx | 297 ++++++++++---------- frontend/src/components/Sidebar.tsx | 49 ++-- 2 files changed, 174 insertions(+), 172 deletions(-) diff --git a/frontend/src/app/terminal/settings/page.tsx b/frontend/src/app/terminal/settings/page.tsx index c18aeb9..b8c1c40 100644 --- a/frontend/src/app/terminal/settings/page.tsx +++ b/frontend/src/app/terminal/settings/page.tsx @@ -1,9 +1,8 @@ 'use client' -import { useEffect, useState, useCallback, useMemo } from 'react' +import { useEffect, useState, useCallback } from 'react' import { useRouter } from 'next/navigation' -import { TerminalLayout } from '@/components/TerminalLayout' -import { PageContainer, TabBar } from '@/components/PremiumTable' +import { CommandCenterLayout } from '@/components/CommandCenterLayout' import { useStore } from '@/lib/store' import { api, PriceAlert } from '@/lib/api' import { @@ -21,6 +20,8 @@ import { Zap, Key, TrendingUp, + X, + Settings, } from 'lucide-react' import Link from 'next/link' import clsx from 'clsx' @@ -36,13 +37,11 @@ export default function SettingsPage() { const [success, setSuccess] = useState(null) const [error, setError] = useState(null) - // Profile form const [profileForm, setProfileForm] = useState({ name: '', email: '', }) - // Notification preferences const [notificationPrefs, setNotificationPrefs] = useState({ domain_availability: true, price_alerts: true, @@ -50,7 +49,6 @@ export default function SettingsPage() { }) const [savingNotifications, setSavingNotifications] = useState(false) - // Price alerts const [priceAlerts, setPriceAlerts] = useState([]) const [loadingAlerts, setLoadingAlerts] = useState(false) const [deletingAlertId, setDeletingAlertId] = useState(null) @@ -102,7 +100,7 @@ export default function SettingsPage() { await api.updateMe({ name: profileForm.name || undefined }) const { checkAuth } = useStore.getState() await checkAuth() - setSuccess('Profile updated successfully') + setSuccess('Profile updated') } catch (err) { setError(err instanceof Error ? err.message : 'Failed to update profile') } finally { @@ -117,7 +115,7 @@ export default function SettingsPage() { try { localStorage.setItem('notification_prefs', JSON.stringify(notificationPrefs)) - setSuccess('Notification preferences saved') + setSuccess('Preferences saved') } catch (err) { setError(err instanceof Error ? err.message : 'Failed to save preferences') } finally { @@ -157,8 +155,8 @@ export default function SettingsPage() { if (isLoading) { return ( -
-
+
+
) } @@ -178,46 +176,69 @@ export default function SettingsPage() { ] return ( - - - {/* Messages */} - {error && ( -
- -

{error}

- + + {/* ═══════════════════════════════════════════════════════════════════════ */} + {/* HEADER */} + {/* ═══════════════════════════════════════════════════════════════════════ */} +
+
+
+
+ + Account +
+ +

+ Settings +

- )} - - {success && ( -
- -

{success}

- + +
+
+ {tierName === 'Tycoon' ? : + tierName === 'Trader' ? : + } + {tierName} +
- )} +
+
-
- {/* Sidebar */} -
- {/* Mobile: Horizontal scroll tabs */} -