/* eslint-disable react-hooks/rules-of-hooks */ 'use client' import BasicPromptInput from '../BasicPromptInput' import BasicPromptAccessories from '../BasicPromptAccessories' import { useAtomValue } from 'jotai' import SecondaryButton from '../SecondaryButton' import { PlusIcon } from '@heroicons/react/24/outline' import useCreateConversation from '@hooks/useCreateConversation' import { activeAssistantModelAtom, stateModel } from '@helpers/atoms/Model.atom' import { currentConvoStateAtom, getActiveConvoIdAtom, } from '@helpers/atoms/Conversation.atom' import useGetInputState from '@hooks/useGetInputState' import { Button } from '../../../uikit/button' import useStartStopModel from '@hooks/useStartStopModel' import { userConversationsAtom } from '@helpers/atoms/Conversation.atom' const InputToolbar: React.FC = () => { const activeModel = useAtomValue(activeAssistantModelAtom) const currentConvoState = useAtomValue(currentConvoStateAtom) const { inputState, currentConvo } = useGetInputState() const { requestCreateConvo } = useCreateConversation() const { startModel } = useStartStopModel() const { loading } = useAtomValue(stateModel) const conversations = useAtomValue(userConversationsAtom) const activeConvoId = useAtomValue(getActiveConvoIdAtom) const onNewConversationClick = () => { if (activeModel) { requestCreateConvo(activeModel) } } const onStartModelClick = () => { const modelId = currentConvo?.modelId if (!modelId) return startModel(modelId) } if (!activeConvoId) { return null } if (inputState === 'model-mismatch' || inputState === 'loading') { const message = inputState === 'loading' || loading ? 'Loading..' : 'Model mismatch!' return (

{message}

) } if (inputState === 'model-not-found') { return (

Model {currentConvo?.modelId} not found! Please re-download the model first.

) } if (conversations.length > 0) return (
{currentConvoState?.error && (
{currentConvoState?.error?.toString()}
)}
} />
{/* My text input */}
) } export default InputToolbar