|
import { useState, useEffect, useCallback } from 'react'; |
|
import { Dialog, DialogTemplate } from '../ui/'; |
|
import { ClearChatsButton } from './SettingsTabs/'; |
|
import { useClearConversationsMutation } from '@librechat/data-provider'; |
|
import store from '~/store'; |
|
import { useRecoilValue } from 'recoil'; |
|
import { localize } from '~/localization/Translation'; |
|
|
|
const ClearConvos = ({ open, onOpenChange }) => { |
|
const { newConversation } = store.useConversation(); |
|
const { refreshConversations } = store.useConversations(); |
|
const clearConvosMutation = useClearConversationsMutation(); |
|
const [confirmClear, setConfirmClear] = useState(false); |
|
const lang = useRecoilValue(store.lang); |
|
|
|
const clearConvos = useCallback(() => { |
|
if (confirmClear) { |
|
console.log('Clearing conversations...'); |
|
clearConvosMutation.mutate({}); |
|
setConfirmClear(false); |
|
} else { |
|
setConfirmClear(true); |
|
} |
|
}, [confirmClear, clearConvosMutation]); |
|
|
|
useEffect(() => { |
|
if (clearConvosMutation.isSuccess) { |
|
refreshConversations(); |
|
newConversation(); |
|
} |
|
}, [clearConvosMutation.isSuccess, newConversation, refreshConversations]); |
|
|
|
return ( |
|
<Dialog open={open} onOpenChange={onOpenChange}> |
|
<DialogTemplate |
|
title={localize(lang, 'com_nav_clear_conversation')} |
|
description={localize(lang, 'com_nav_clear_conversation_confirm_message')} |
|
leftButtons={ |
|
<ClearChatsButton showText={false} confirmClear={confirmClear} onClick={clearConvos} /> |
|
} |
|
/> |
|
</Dialog> |
|
); |
|
}; |
|
|
|
export default ClearConvos; |
|
|