'use client'; import { Document } from '@langchain/core/documents'; import Navbar from './Navbar'; import Chat from './Chat'; import EmptyChat from './EmptyChat'; import { Settings } from 'lucide-react'; import Link from 'next/link'; import NextError from 'next/error'; import { useChat } from '@/lib/hooks/useChat'; import Loader from './ui/Loader'; import SettingsButtonMobile from './Settings/SettingsButtonMobile'; export interface BaseMessage { chatId: string; messageId: string; createdAt: Date; } export interface AssistantMessage extends BaseMessage { role: 'assistant'; content: string; suggestions?: string[]; } export interface UserMessage extends BaseMessage { role: 'user'; content: string; } export interface SourceMessage extends BaseMessage { role: 'source'; sources: Document[]; } export interface SuggestionMessage extends BaseMessage { role: 'suggestion'; suggestions: string[]; } export type Message = | AssistantMessage | UserMessage | SourceMessage | SuggestionMessage; export type ChatTurn = UserMessage | AssistantMessage; export interface File { fileName: string; fileExtension: string; fileId: string; } const ChatWindow = () => { const { hasError, isReady, notFound, messages } = useChat(); if (hasError) { return (

Failed to connect to the server. Please try again later.

); } return isReady ? ( notFound ? ( ) : (
{messages.length > 0 ? ( <> ) : ( )}
) ) : (
); }; export default ChatWindow;