import React, { useEffect } from 'react'; import { NavLink, useLocation } from 'react-router-dom'; import { LayoutDashboard, Database, MessageSquare, BarChart3, FileText, Settings, LogOut, X, Boxes, Brain, TrendingUp, TrendingDown, Rocket, BookOpen, Activity, Workflow, } from 'lucide-react'; import { motion } from 'framer-motion'; import Logo from '@/components/Logo'; import { useAuth } from '@/contexts/AuthContext'; const navItems = [ { path: '/data-hub', icon: Database, label: 'Data Hub' }, { path: '/dashboard', icon: LayoutDashboard, label: 'Dashboard' }, { path: '/anomalies', icon: TrendingDown, label: 'Anomaly Monitor' }, { path: '/lineage', icon: Boxes, label: 'Data Lineage' }, { path: '/simulator', icon: TrendingUp, label: 'Scenario Simulator' }, { path: '/reports', icon: FileText, label: 'Reports' }, { path: '/data-stories', icon: BookOpen, label: 'Data Stories', badge: 'V5' }, { path: '/ml-predictions', icon: Brain, label: 'ML Predictions' }, { path: '/model-monitoring', icon: Activity, label: 'Model Monitoring', badge: 'V5' }, { path: '/pipelines', icon: Workflow, label: 'Pipeline Builder', badge: 'V5' }, { path: '/chat', icon: MessageSquare, label: 'AI Analyst' }, { path: '/collaborate', icon: MessageSquare, label: 'Collaborate' }, { path: '/settings', icon: Settings, label: 'Settings' }, { path: '/developer', icon: Boxes, label: 'Developer' }, ]; interface SidebarProps { isMobileMenuOpen?: boolean; onClose?: () => void; } const Sidebar: React.FC = ({ isMobileMenuOpen = false, onClose }) => { const { signOut, user } = useAuth(); const location = useLocation(); // Close menu on route change useEffect(() => { if (onClose) onClose(); }, [location.pathname]); const handleLogout = async () => { if (confirm('Are you sure you want to sign out?')) { await signOut(); } }; return ( {/* Mobile close button */}
{/* Logo */}
{/* Navigation */} {/* User Info & Logout */}
{/* User Email */} {user && (

Signed in as

{user.email}

)} {/* Logout Button */}
); }; export default Sidebar;