import { useState } from 'react'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Settings, User, Shield, Eye, Bell, MapPin, Download } from 'lucide-react'; import { useAuth } from '@/hooks/useAuth'; import { useProfile } from '@/hooks/useProfile'; import { Navigate } from 'react-router-dom'; import { Header } from '@/components/layout/Header'; import { AccountProfileTab } from '@/components/settings/AccountProfileTab'; import { SecurityTab } from '@/components/settings/SecurityTab'; import { PrivacyTab } from '@/components/settings/PrivacyTab'; import { NotificationsTab } from '@/components/settings/NotificationsTab'; import { LocationTab } from '@/components/settings/LocationTab'; import { DataExportTab } from '@/components/settings/DataExportTab'; export default function UserSettings() { const { user, loading: authLoading } = useAuth(); const { data: profile, isLoading: profileLoading } = useProfile(user?.id); const [activeTab, setActiveTab] = useState('profile'); const loading = authLoading || profileLoading; if (loading) { return (
); } if (!user) { return ; } const tabs = [ { id: 'profile', label: 'Account & Profile', icon: User, component: AccountProfileTab }, { id: 'security', label: 'Security', icon: Shield, component: SecurityTab }, { id: 'privacy', label: 'Privacy', icon: Eye, component: PrivacyTab }, { id: 'notifications', label: 'Notifications', icon: Bell, component: NotificationsTab }, { id: 'location', label: 'Location & Info', icon: MapPin, component: LocationTab }, { id: 'data', label: 'Data & Export', icon: Download, component: DataExportTab } ]; return (
{/* Header */}

Settings

Manage your account preferences and privacy settings

{/* Settings Tabs */} {tabs.map((tab) => { const Icon = tab.icon; return ( {tab.label} {tab.label.split(' ')[0]} ); })} {tabs.map((tab) => { const Component = tab.component; return ( ); })}
); }