diff --git a/client/src/components/Input/NewConversationMenu/index.jsx b/client/src/components/Input/NewConversationMenu/index.jsx index 0898866ed5..3a45db0812 100644 --- a/client/src/components/Input/NewConversationMenu/index.jsx +++ b/client/src/components/Input/NewConversationMenu/index.jsx @@ -1,12 +1,11 @@ -import React, { useState, useEffect } from 'react'; +import { useState, useEffect } from 'react'; import { useRecoilValue, useRecoilState } from 'recoil'; -import EditPresetDialog from '../../Endpoints/EditPresetDialog.jsx'; -import EndpointItems from './EndpointItems.jsx'; -import PresetItems from './PresetItems.jsx'; -import FileUpload from './FileUpload.jsx'; +import EditPresetDialog from '../../Endpoints/EditPresetDialog'; +import EndpointItems from './EndpointItems'; +import PresetItems from './PresetItems'; +import FileUpload from './FileUpload'; import getIcon from '~/utils/getIcon'; -import manualSWR, { handleFileSelected } from '~/utils/fetchers'; - +import { useDeletePresetMutation, useCreatePresetMutation } from '~/data-provider'; import { Button } from '../../ui/Button.tsx'; import { DropdownMenu, @@ -17,33 +16,34 @@ import { DropdownMenuTrigger } from '../../ui/DropdownMenu.tsx'; import { Dialog, DialogTrigger } from '../../ui/Dialog.tsx'; -import DialogTemplate from '../../ui/DialogTemplate.jsx'; +import DialogTemplate from '../../ui/DialogTemplate'; import store from '~/store'; export default function NewConversationMenu() { - // const [modelSave, setModelSave] = useState(false); const [menuOpen, setMenuOpen] = useState(false); const [presetModelVisible, setPresetModelVisible] = useState(false); const [preset, setPreset] = useState(false); - // const models = useRecoilValue(store.models); const availableEndpoints = useRecoilValue(store.availableEndpoints); - // const setCustomGPTModels = useSetRecoilState(store.customGPTModels); const [presets, setPresets] = useRecoilState(store.presets); const conversation = useRecoilValue(store.conversation) || {}; const { endpoint, conversationId } = conversation; - // const { model, promptPrefix, chatGptLabel, conversationId } = conversation; const { newConversation } = store.useConversation(); - const { trigger: clearPresetsTrigger } = manualSWR(`/api/presets/delete`, 'post', res => { - console.log(res); - setPresets(res.data); - }); + const deletePresetsMutation = useDeletePresetMutation(); + const createPresetMutation = useCreatePresetMutation(); const importPreset = jsonData => { - handleFileSelected(jsonData).then(setPresets); + createPresetMutation.mutate({...jsonData}, { + onSuccess: (data) => { + setPresets(data); + }, + onError: (error) => { + console.error('Error uploading the preset:', error); + } + }) }; // update the default model when availableModels changes @@ -65,7 +65,6 @@ export default function NewConversationMenu() { setMenuOpen(false); if (!newEndpoint) return; - // else if (newEndpoint === endpoint) return; else { newConversation({}, { endpoint: newEndpoint }); } @@ -75,7 +74,6 @@ export default function NewConversationMenu() { const onSelectPreset = newPreset => { setMenuOpen(false); if (!newPreset) return; - // else if (newEndpoint === endpoint) return; else { newConversation({}, newPreset); } @@ -86,8 +84,12 @@ export default function NewConversationMenu() { setPreset(preset); }; - const clearPreset = () => { - clearPresetsTrigger({}); + const clearAllPresets = () => { + deletePresetsMutation.mutate({arg: {}}); + }; + + const onDeletePreset = preset => { + deletePresetsMutation.mutate({arg: preset}); }; const icon = getIcon({ @@ -99,9 +101,7 @@ export default function NewConversationMenu() { }); return ( - + @@ -159,7 +157,7 @@ export default function NewConversationMenu() { title="Clear presets" description="Are you sure you want to clear all presets? This is irreversible." selection={{ - selectHandler: clearPreset, + selectHandler: clearAllPresets, selectClasses: 'bg-red-600 hover:bg-red-700 dark:hover:bg-red-800 text-white', selectText: 'Clear' }} @@ -176,7 +174,7 @@ export default function NewConversationMenu() { presets={presets} onSelect={onSelectPreset} onChangePreset={onChangePreset} - onDeletePreset={clearPresetsTrigger} + onDeletePreset={onDeletePreset} /> ) : ( No preset yet.