import React, { useEffect, useState } from 'react'; import { useCreatePresetMutation } from 'librechat-data-provider'; import type { TEditPresetProps } from '~/common'; import { Dialog, Input, Label } from '~/components/ui/'; import DialogTemplate from '~/components/ui/DialogTemplate'; import { cn, defaultTextPropsLabel, removeFocusOutlines, cleanupPreset } from '~/utils/'; import { useLocalize } from '~/hooks'; const SaveAsPresetDialog = ({ open, onOpenChange, preset }: TEditPresetProps) => { const [title, setTitle] = useState(preset?.title || 'My Preset'); const createPresetMutation = useCreatePresetMutation(); const localize = useLocalize(); const submitPreset = () => { const _preset = cleanupPreset({ preset: { ...preset, title, }, }); createPresetMutation.mutate(_preset); }; useEffect(() => { setTitle(preset?.title || localize('com_endpoint_my_preset')); // eslint-disable-next-line react-hooks/exhaustive-deps }, [open]); return (
setTitle(e.target.value || '')} placeholder="Set a custom name for this preset" className={cn( defaultTextPropsLabel, 'flex h-10 max-h-10 w-full resize-none px-3 py-2', removeFocusOutlines, )} />
} selection={{ selectHandler: submitPreset, selectClasses: 'bg-green-600 hover:bg-green-700 dark:hover:bg-green-800 text-white', selectText: localize('com_ui_save'), }} />
); }; export default SaveAsPresetDialog;