import { useOneNamespaceEffectsLoading } from '@/hooks/storeHooks'; import { useSaveSetting } from '@/hooks/userSettingHook'; import { rsaPsw } from '@/utils'; import { Button, Divider, Form, Input, Space } from 'antd'; import SettingTitle from '../components/setting-title'; import { useValidateSubmittable } from '../hooks'; import parentStyles from '../index.less'; import styles from './index.less'; type FieldType = { password?: string; new_password?: string; confirm_password?: string; }; const tailLayout = { wrapperCol: { offset: 20, span: 4 }, }; const UserSettingPassword = () => { const loading = useOneNamespaceEffectsLoading('settingModel', ['setting']); const { form, submittable } = useValidateSubmittable(); const saveSetting = useSaveSetting(); const onFinish = (values: any) => { const password = rsaPsw(values.password) as string; const new_password = rsaPsw(values.new_password) as string; saveSetting({ password, new_password }); }; const onFinishFailed = (errorInfo: any) => { console.log('Failed:', errorInfo); }; return (
label="Current password" name="password" rules={[ { required: true, message: 'Please input your password!', whitespace: true, }, ]} > noStyle name="new_password" rules={[ { required: true, message: 'Please input your password!', whitespace: true, }, ]} >

Your new password must be more than 8 characters.

label="Confirm new password" name="confirm_password" dependencies={['new_password']} rules={[ { required: true, message: 'Please confirm your password!', whitespace: true, }, ({ getFieldValue }) => ({ validator(_, value) { if (!value || getFieldValue('new_password') === value) { return Promise.resolve(); } return Promise.reject( new Error('The new password that you entered do not match!'), ); }, }), ]} > prevValues.additional !== curValues.additional } >
); }; export default UserSettingPassword;