import { useState } from 'react'; import type { ReactNode } from 'react'; import type { TMessage } from 'librechat-data-provider'; import ScrollToBottom from '~/components/Messages/ScrollToBottom'; import { useScreenshot, useMessageScrolling } from '~/hooks'; import { CSSTransition } from 'react-transition-group'; import MultiMessage from './MultiMessage'; export default function MessagesView({ messagesTree: _messagesTree, Header, }: { messagesTree?: TMessage[] | null; Header?: ReactNode; }) { const { screenshotTargetRef } = useScreenshot(); const [currentEditId, setCurrentEditId] = useState(-1); const { conversation, scrollableRef, messagesEndRef, showScrollButton, handleSmoothToRef, debouncedHandleScroll, } = useMessageScrolling(_messagesTree); const { conversationId } = conversation ?? {}; return (
{(_messagesTree && _messagesTree?.length == 0) || _messagesTree === null ? (
Nothing found
) : ( <> {Header && Header}
)}
{() => showScrollButton && }
); }