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

39 lines (38 loc) 1.51 kB
import * as React from 'react'; import { NOOP } from '../../utils/NOOP'; import { ObservableReactValue } from '../../utils/observers'; import { EventsEmitter } from '../../models/EventsEmitter'; export const useApiRef = (userApiRef) => { const apiRef = React.useRef({ onChangeThread: NOOP, openNewThread: NOOP, updateScrollButtonState: NOOP, deleteThread: NOOP, getProgressStatus: () => '', sendUserMessage: () => new Promise((resolve) => setTimeout(resolve, 100)), onEditMessage: () => new Promise((resolve) => setTimeout(resolve, 100)), setProgressStatus: NOOP, handleChangeBranch: NOOP, getCurrentThread: () => undefined, getThreadById: () => undefined, getAllMessages: () => [], getBranchMessages: () => [], getAllThreads: () => [], allMessages: new ObservableReactValue([]), branch: new ObservableReactValue([]), getListener: () => undefined, getConversationBlockHeight: () => 0, setMenuDrawerOpen: NOOP, setActiveTool: NOOP, setDeleteItem: NOOP, setMessageText: NOOP, emitter: EventsEmitter.getMockMethods(), }); React.useMemo(() => { if (userApiRef) { const { getListener, branch, allMessages, updateScrollButtonState, ...otherProps } = apiRef.current; userApiRef.current = otherProps; } }, [userApiRef]); return apiRef; };