import Image from 'next/image' import useCreateConversation from '@/_hooks/useCreateConversation' import PrimaryButton from '../PrimaryButton' import { useAtomValue, useSetAtom } from 'jotai' import { useEffect, useState } from 'react' import { MainViewState, setMainViewStateAtom, } from '@/_helpers/atoms/MainView.atom' import { activeAssistantModelAtom } from '@/_helpers/atoms/Model.atom' import useInitModel from '@/_hooks/useInitModel' import { useGetDownloadedModels } from '@/_hooks/useGetDownloadedModels' import { AssistantModel } from '@/_models/AssistantModel' enum ActionButton { DownloadModel = 'Download a Model', StartChat = 'Start a Conversation', } const SidebarEmptyHistory: React.FC = () => { const { downloadedModels } = useGetDownloadedModels() const activeModel = useAtomValue(activeAssistantModelAtom) const setMainView = useSetAtom(setMainViewStateAtom) const { requestCreateConvo } = useCreateConversation() const [action, setAction] = useState(ActionButton.DownloadModel) const { initModel } = useInitModel() useEffect(() => { if (downloadedModels.length > 0) { setAction(ActionButton.StartChat) } else { setAction(ActionButton.DownloadModel) } }, [downloadedModels]) const onClick = () => { if (action === ActionButton.DownloadModel) { setMainView(MainViewState.ExploreModel) } else { if (!activeModel) { setMainView(MainViewState.ConversationEmptyModel) } else { createConversationAndInitModel(activeModel) } } } const createConversationAndInitModel = async (model: AssistantModel) => { await requestCreateConvo(model) await initModel(model) } return (