UNPKG

@plteam/chat-ui

Version:

CUI Kit is a free and open-source library for creating AI assistant chat interfaces, built with React, Material UI, and TypeScript

28 lines (27 loc) 1.7 kB
import * as React from 'react'; import { MobileMessageActionsType } from '../message/hooks/useMobileMessageActions'; import { MessagesModeType } from '../message/hooks/useMessagesMode'; import { ThreadModel } from '../../models/ThreadModel'; import { Thread, Message } from '../../models'; import { ApiManager } from '../core/useApiManager'; import { PrivateApiRefType } from '../core/useApiRef'; import { type ChatGlobalContextType } from '../core/ChatGlobalContext'; import { ChatScrollApiRef } from './ChatScroller'; import { Threads } from '../../models/Threads'; type ThreadContextType<DM extends Message, DD extends Thread<DM>> = { thread: ThreadModel<DM, DD> | undefined; mobileMessageActions: MobileMessageActionsType; messageMode: MessagesModeType; apiRef: React.RefObject<PrivateApiRefType<DM>>; }; type Props<DM extends Message, DD extends Thread<DM>> = React.PropsWithChildren<{ model: Threads<DM, DD>; thread: ThreadModel<DM, DD> | undefined; apiManager: ApiManager; scrollRef: React.RefObject<ChatScrollApiRef>; globalProps: Pick<ChatGlobalContextType<any, any>, 'onFirstMessageSent' | 'onAssistantMessageTypingFinish' | 'enableBranches' | 'beforeUserMessageSend' | 'getCurrentBranch' | 'getConversationBlockHeightMin'>; contentRef?: React.RefObject<HTMLDivElement | null>; }>; declare const ThreadProvider: <DM extends Message, DD extends Thread<DM>>({ children, model, thread, apiManager, scrollRef, contentRef, globalProps }: Props<DM, DD>) => React.JSX.Element; declare const useThreadContext: <DM extends Message, DD extends Thread<DM>>() => ThreadContextType<DM, DD>; export { ThreadProvider, useThreadContext };