import * as Tabs from '@radix-ui/react-tabs'; import { Dialog, DialogContent, DialogHeader, DialogTitle } from '../ui/Dialog.tsx'; import { General } from './SettingsTabs/'; import { CogIcon } from '~/components/svg'; import { useEffect, useState } from 'react'; import { cn } from '~/utils/'; import { useClearConversationsMutation } from '@librechat/data-provider'; import { useRecoilValue } from 'recoil'; import store from '~/store'; import { localize } from '~/localization/Translation'; export default function Settings({ open, onOpenChange }) { const { newConversation } = store.useConversation(); const { refreshConversations } = store.useConversations(); const clearConvosMutation = useClearConversationsMutation(); const [confirmClear, setConfirmClear] = useState(false); const [isMobile, setIsMobile] = useState(false); const lang = useRecoilValue(store.lang); // check if mobile dynamically and update useEffect(() => { const checkMobile = () => { if (window.innerWidth <= 768) { setIsMobile(true); } else { setIsMobile(false); } }; checkMobile(); window.addEventListener('resize', checkMobile); }, []); useEffect(() => { if (clearConvosMutation.isSuccess) { refreshConversations(); newConversation(); } }, [clearConvosMutation.isSuccess, newConversation, refreshConversations]); useEffect(() => { // If the user clicks in the dialog when confirmClear is true, set it to false const handleClick = (e) => { if (confirmClear) { if (e.target.id === 'clearConvosBtn' || e.target.id === 'clearConvosTxt') { return; } setConfirmClear(false); } }; window.addEventListener('click', handleClick); return () => window.removeEventListener('click', handleClick); }, [confirmClear]); return ( {localize(lang, 'com_nav_settings')}
{localize(lang, 'com_nav_setting_general')}
); }