import { useState } from 'react'; import { useQuery } from '@tanstack/react-query'; import { CreditCard, TrendingUp, Activity, Menu, X, Home, List, BarChart3 } from 'lucide-react'; import { apiClient } from '../lib/api'; import AccountsOverview from './AccountsOverview'; import TransactionsList from './TransactionsList'; import ErrorBoundary from './ErrorBoundary'; import { cn } from '../lib/utils'; type TabType = 'overview' | 'transactions' | 'analytics'; export default function Dashboard() { const [activeTab, setActiveTab] = useState('overview'); const [sidebarOpen, setSidebarOpen] = useState(false); const { data: accounts } = useQuery({ queryKey: ['accounts'], queryFn: apiClient.getAccounts, }); const navigation = [ { name: 'Overview', icon: Home, id: 'overview' as TabType }, { name: 'Transactions', icon: List, id: 'transactions' as TabType }, { name: 'Analytics', icon: BarChart3, id: 'analytics' as TabType }, ]; const totalBalance = accounts?.reduce((sum, account) => sum + (account.balance || 0), 0) || 0; return (
{/* Sidebar */}

Leggen

{/* Account Summary in Sidebar */}
Total Balance

{new Intl.NumberFormat('en-US', { style: 'currency', currency: 'EUR', }).format(totalBalance)}

{accounts?.length || 0} accounts

{/* Overlay for mobile */} {sidebarOpen && (
setSidebarOpen(false)} /> )} {/* Main content */}
{/* Header */}

{navigation.find(item => item.id === activeTab)?.name}

Connected
{/* Main content area */}
{activeTab === 'overview' && } {activeTab === 'transactions' && } {activeTab === 'analytics' && (

Analytics

Analytics dashboard coming soon...

)}
); }