import { useState } from 'react'; import { Settings2 } from 'lucide-react'; import { TooltipAnchor } from '@librechat/client'; import { Root, Anchor } from '@radix-ui/react-popover'; import { isParamEndpoint, getEndpointField, tConvoUpdateSchema } from 'librechat-data-provider'; import type { TPreset, TInterfaceConfig } from 'librechat-data-provider'; import { EndpointSettings, SaveAsPresetDialog, AlternativeSettings } from '~/components/Endpoints'; import { useSetIndexOptions, useLocalize } from '~/hooks'; import { useGetEndpointsQuery } from '~/data-provider'; import OptionsPopover from './OptionsPopover'; import PopoverButtons from './PopoverButtons'; import { useChatContext } from '~/Providers'; export default function HeaderOptions({ interfaceConfig, }: { interfaceConfig?: Partial; }) { const { data: endpointsConfig } = useGetEndpointsQuery(); const [saveAsDialogShow, setSaveAsDialogShow] = useState(false); const localize = useLocalize(); const { showPopover, conversation, setShowPopover } = useChatContext(); const { setOption } = useSetIndexOptions(); const { endpoint } = conversation ?? {}; const saveAsPreset = () => { setSaveAsDialogShow(true); }; if (!endpoint) { return null; } const triggerAdvancedMode = () => setShowPopover((prev) => !prev); const endpointType = getEndpointField(endpointsConfig, endpoint, 'type'); const paramEndpoint = isParamEndpoint(endpoint, endpointType); return (
{interfaceConfig?.parameters === true && paramEndpoint === false && ( )}
{interfaceConfig?.parameters === true && paramEndpoint === false && ( } closePopover={() => setShowPopover(false)} >
)} {interfaceConfig?.presets === true && ( )}
); }