@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
27 lines (26 loc) • 1.6 kB
JavaScript
import * as React from 'react';
import ThreadComponent from './thread/ThreadComponent';
import { useChatProps } from './core/useChatProps';
import { ChatGlobalProvider } from './core/ChatGlobalContext';
import ChatSnackbar from './ChatSnackbar';
import { ChatSlotsProvider } from './core/ChatSlotsContext';
import { usePropsSlots } from './core/usePropsSlots';
import { useApiRef } from './core/useApiRef';
import { LocalizationProvider } from './core/LocalizationContext';
import { useApiManager } from './core/useApiManager';
import AIModelSelect from './AIModelSelect';
const Chat = (usersProps) => {
const userApiRef = usersProps.apiRef;
const apiRef = useApiRef(userApiRef);
const apiManager = useApiManager(apiRef, userApiRef);
const props = useChatProps(usersProps);
const { slots, slotProps, coreSlots } = usePropsSlots(usersProps);
return (React.createElement(ChatGlobalProvider, { props: props, apiManager: apiManager },
React.createElement(LocalizationProvider, { locale: usersProps.lang },
React.createElement(ChatSlotsProvider, { slots: slots, coreSlots: coreSlots, slotProps: slotProps },
React.createElement(AIModelSelect, null),
React.createElement(ThreadComponent, { initialThread: props.initialThread, enableBranches: props.enableBranches, apiManager: apiManager, contentRef: usersProps.scrollerRef, loading: usersProps.loading, className: usersProps.className }),
usersProps.children)),
React.createElement(ChatSnackbar, null)));
};
export default Chat;