import classNames from '~/lib/classNames' import StyledButton from '../StyledButton' import { router } from '@inertiajs/react' import { ChatSession } from '../../../types/chat' import { IconMessage } from '@tabler/icons-react' interface ChatSidebarProps { sessions: ChatSession[] activeSessionId: string | null onSessionSelect: (id: string) => void onNewChat: () => void onClearHistory: () => void isInModal?: boolean } export default function ChatSidebar({ sessions, activeSessionId, onSessionSelect, onNewChat, onClearHistory, isInModal = false, }: ChatSidebarProps) { return (
New Chat
{sessions.length === 0 ? (
No previous chats
) : (
{sessions.map((session) => ( ))}
)}
Project Nomad Logo { if (isInModal) { window.open('/chat', '_blank') } else { router.visit('/home') } }} icon={isInModal ? 'IconExternalLink' : 'IconHome'} variant="outline" size="sm" fullWidth > {isInModal ? 'Open in New Tab' : 'Back to Home'} { router.visit('/settings/models') }} icon="IconDatabase" variant="primary" size="sm" fullWidth > Models & Settings { router.visit('/knowledge-base') }} icon="IconBrain" variant="primary" size="sm" fullWidth > Knowledge Base {sessions.length > 0 && ( Clear History )}
) }