import React, { useState } from 'react'; import { Link, useLocation, useNavigate } from 'react-router-dom'; import { Home, CreditCard, PieChart, User, Settings, LogOut, Menu, X, DollarSign } from 'lucide-react'; import { useAuth } from '../contexts/AuthContext'; interface LayoutProps { children: React.ReactNode; } export const Layout: React.FC = ({ children }) => { const [sidebarOpen, setSidebarOpen] = useState(false); const { user, logout } = useAuth(); const location = useLocation(); const navigate = useNavigate(); const navigation = [ { name: 'Dashboard', href: '/', icon: Home }, { name: 'Transactions', href: '/transactions', icon: CreditCard }, { name: 'Analytics', href: '/analytics', icon: PieChart }, { name: 'Profile', href: '/profile', icon: User }, { name: 'Settings', href: '/settings', icon: Settings }, ]; const handleLogout = async () => { await logout(); navigate('/login'); }; return (
{/* Mobile sidebar */}
FinanceTracker
{/* Desktop sidebar */}
FinanceTracker
{/* Main content */}
{/* Header */}

{navigation.find(item => item.href === location.pathname)?.name || 'Finance Tracker'}

Welcome, {user?.first_name || user?.email?.split('@')[0]}
{/* Page content */}
{children}
); };