import { useRecoilState } from 'recoil'; import { useGetEndpointsQuery } from 'librechat-data-provider/react-query'; import { cn, defaultTextProps, removeFocusOutlines, mapEndpoints } from '~/utils'; import { Input, Label, Dropdown, Dialog, DialogClose, DialogButton } from '~/components/'; import PopoverButtons from '~/components/Chat/Input/PopoverButtons'; import DialogTemplate from '~/components/ui/DialogTemplate'; import { useSetIndexOptions, useLocalize, useDebouncedInput } from '~/hooks'; import { EndpointSettings } from '~/components/Endpoints'; import { useChatContext } from '~/Providers'; import store from '~/store'; const EditPresetDialog = ({ exportPreset, submitPreset, }: { exportPreset: () => void; submitPreset: () => void; }) => { const localize = useLocalize(); const { preset, setPreset } = useChatContext(); const { setOption } = useSetIndexOptions(preset); const [onTitleChange, title] = useDebouncedInput({ setOption, optionKey: 'title', initialValue: preset?.title, }); const [presetModalVisible, setPresetModalVisible] = useRecoilState(store.presetModalVisible); const { data: availableEndpoints = [] } = useGetEndpointsQuery({ select: mapEndpoints, }); const { endpoint, endpointType, model } = preset || {}; if (!endpoint) { return null; } return ( { setPresetModalVisible(open); if (!open) { setPreset(null); } }} >
setOption('endpoint')(value)} options={availableEndpoints} />
} buttons={
{localize('com_endpoint_export')} {localize('com_ui_save')}
} footerClassName="bg-white dark:bg-gray-700" />
); }; export default EditPresetDialog;