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) => (
))}
)}
{
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
)}
)
}