import { forwardRef, useImperativeHandle, useState } from 'react'; import { useParams } from 'react-router-dom' import { Form, Slider } from 'antd'; import { useTranslation } from 'react-i18next'; import RbModal from '@/components/RbModal' import { forgetTrigger } from '@/api/memory' import type { ForgetRefreshModalRef } from '../pages/ForgetDetail' interface ForgetRefreshModalProps { refresh: (flag: boolean) => void; } const ForgetRefreshModal = forwardRef(({ refresh }, ref) => { const { t } = useTranslation(); const { id } = useParams() const [visible, setVisible] = useState(false); const [form] = Form.useForm<{ max_merge_batch_size: number; min_days_since_access: number; }>(); const [loading, setLoading] = useState(false) const values = Form.useWatch([], form); // 封装取消方法,添加关闭弹窗逻辑 const handleClose = () => { setVisible(false); form.resetFields(); setLoading(false) }; const handleOpen = () => { form.resetFields(); setVisible(true); }; // 封装保存方法,添加提交逻辑 const handleSave = () => { if(!id) return form .validateFields() .then((values) => { setLoading(true) forgetTrigger({ ...values, end_user_id: id }) .then(() => { refresh(true) handleClose() }) .finally(() => { setLoading(false) }) }) .catch((err) => { console.log('err', err) }); } // 暴露给父组件的方法 useImperativeHandle(ref, () => ({ handleOpen, handleClose })); return (
{t(`forgettingEngine.max_merge_batch_size`)}
{t(`forgettingEngine.range`)}: {[1, 1000]?.join('-')} {t('forgettingEngine.CurrentValue')}: {values?.min_days_since_access || 0}
{t(`forgettingEngine.min_days_since_access`)}
{t(`forgettingEngine.range`)}: {[1, 365]?.join('-')} {t('forgettingEngine.CurrentValue')}: {values?.min_days_since_access || 0}
); }); export default ForgetRefreshModal;