import React, { useState, useEffect } from 'react'; import { Button } from '../ui/button'; import { Avatar, AvatarFallback, AvatarImage } from '../ui/avatar'; import { Badge } from '../ui/badge'; import { Sheet, SheetContent, SheetTrigger } from '../ui/sheet'; import { ScrollArea } from '../ui/scroll-area'; import { Separator } from '../ui/separator'; import { Menu, Search, Bell, ChevronDown, Home, BookOpen, User, BarChart3, MessageSquare, Calendar, Trophy, Building2, Users, X, Settings } from 'lucide-react'; import { navigateTo } from '../Router'; interface LearnerLayoutProps { children: React.ReactNode; currentPage?: string; userType?: 'individual' | 'corporate'; user?: { name: string; email: string; avatar?: string; organization?: string; orgLogo?: string; role?: string; cohort?: string; }; } interface NotificationPanelProps { isOpen: boolean; onClose: () => void; notifications: Array<{ id: string; type: 'info' | 'warning' | 'success' | 'error'; title: string; message: string; time: string; read: boolean; }>; } function NotificationPanel({ isOpen, onClose, notifications }: NotificationPanelProps) { const unreadCount = notifications.filter(n => !n.read).length; if (!isOpen) return null; return (
No notifications
{notification.title}
{notification.message}
{notification.time}
{user?.name || 'Priya Sharma'}
{user?.email || 'priya.sharma@example.com'}