import React from 'react';
import { Plus, MessageSquare, Trash2, X, History } from 'lucide-react';
import { ChatSession } from '../types';
interface SidebarProps {
isOpen: boolean;
onClose: () => void;
sessions: ChatSession[];
currentSessionId: string | null;
onSelectSession: (id: string) => void;
onNewChat: () => void;
onDeleteSession: (id: string, e: React.MouseEvent) => void;
}
const Sidebar = ({
isOpen,
onClose,
sessions,
currentSessionId,
onSelectSession,
onNewChat,
onDeleteSession
}: SidebarProps) => {
return (
<>
{/* Mobile Overlay */}
{isOpen && (
)}
{/* Sidebar Container */}
{/* Header */}
{/* New Chat Button */}
{/* Session List */}
{sessions.length === 0 ? (
) : (
sessions.map((session) => (
{
onSelectSession(session.id);
if (window.innerWidth < 1024) onClose();
}}
className={`
group relative flex items-center gap-3 p-3 rounded-lg cursor-pointer transition-all
${currentSessionId === session.id
? 'bg-white shadow-sm border border-slate-200 text-slate-900'
: 'text-slate-600 hover:bg-slate-100 border border-transparent'}
`}
>
{session.title}
{new Date(session.createdAt).toLocaleDateString()}
))
)}
>
);
};
export default Sidebar;