| import { useState } from 'react'; |
| import type { TMessage } from 'librechat-data-provider'; |
| import MultiMessage from './MultiMessage'; |
| import { useLocalize } from '~/hooks'; |
|
|
| export default function MessagesView({ |
| messagesTree: _messagesTree, |
| conversationId, |
| }: { |
| messagesTree?: TMessage[] | null; |
| conversationId: string; |
| }) { |
| const localize = useLocalize(); |
| const [currentEditId, setCurrentEditId] = useState<number | string | null>(-1); |
| return ( |
| <div className="flex-1 pb-[50px]"> |
| <div className="dark:gpt-dark-gray relative h-full"> |
| <div |
| style={{ |
| height: '100%', |
| overflowY: 'auto', |
| width: '100%', |
| }} |
| > |
| <div className="flex flex-col pb-9 text-sm dark:bg-transparent"> |
| {(_messagesTree && _messagesTree.length == 0) || _messagesTree === null ? ( |
| <div className="flex w-full items-center justify-center gap-1 bg-gray-50 p-3 text-sm text-gray-500 dark:border-gray-800/50 dark:bg-gray-800 dark:text-gray-300"> |
| {localize('com_ui_nothing_found')} |
| </div> |
| ) : ( |
| <> |
| <div> |
| <MultiMessage |
| key={conversationId} // avoid internal state mixture |
| messagesTree={_messagesTree} |
| messageId={conversationId ?? null} |
| setCurrentEditId={setCurrentEditId} |
| currentEditId={currentEditId ?? null} |
| /> |
| </div> |
| </> |
| )} |
| <div className="dark:gpt-dark-gray group h-0 w-full flex-shrink-0 dark:border-gray-800/50" /> |
| </div> |
| </div> |
| </div> |
| </div> |
| ); |
| } |
|
|