import { inject, observer } from 'mobx-react';
import { ModalAction } from 'containers/Action';
import { getPasswordOtherRule } from 'utils/validate';
import globalUserStore from 'stores/keystone/user';
export class Password extends ModalAction {
static id = 'update-user-password';
static title = t('Update User Password');
get name() {
return t('Update user password');
}
get defaultValue() {
const { name } = this.item;
const value = {
name,
password: '',
confirmPassword: '',
};
return value;
}
static policy = [];
static allowed = () => Promise.resolve(true);
get formItems() {
return [
{
name: 'name',
label: t('User'),
type: 'label',
iconType: 'user',
},
{
name: 'oldPassword',
label: t('Your existing password'),
type: 'input-password',
required: true,
},
{
name: 'password',
label: t('New password'),
type: 'input-password',
required: true,
otherRule: getPasswordOtherRule('password', 'user'),
},
{
name: 'confirmPassword',
label: t('Confirm new password'),
dependencies: ['password'],
type: 'input-password',
required: true,
otherRule: getPasswordOtherRule('confirmPassword', 'user'),
},
];
}
onSubmit = (values) => {
const { id } = this.item;
const { password, oldPassword: original_password } = values;
return globalUserStore.changePasswordUser({
id,
password,
original_password,
});
};
}
export default inject('rootStore')(observer(Password));