import { useRecoilState } from 'recoil'; import type { ChangeEvent } from 'react'; import { useChatContext } from '~/Providers'; import { useRequiresKey } from '~/hooks'; import AttachFile from './Files/AttachFile'; import StopButton from './StopButton'; import SendButton from './SendButton'; import Images from './Files/Images'; import Textarea from './Textarea'; import store from '~/store'; export default function ChatForm({ index = 0 }) { const [text, setText] = useRecoilState(store.textByIndex(index)); const { ask, files, setFiles, conversation, isSubmitting, handleStopGenerating, filesLoading, setFilesLoading, showStopButton, setShowStopButton, } = useChatContext(); const submitMessage = () => { ask({ text }); setText(''); }; const { requiresKey } = useRequiresKey(); const { endpoint: _endpoint, endpointType } = conversation ?? { endpoint: null }; const endpoint = endpointType ?? _endpoint; return (
); }