Repository URL to install this package:
|
Version:
3.7.2 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const mobx_1 = require("xmobx/mobx");
const validators_1 = require("../../../validators");
const inputs_1 = require("../../inputs");
class ConfirmPasswordState {
constructor() {
this.password = new inputs_1.InputState();
this.confirmPassword = new inputs_1.InputState();
}
get isValid() {
return this.password.isValid && this.confirmPassword.isValid;
}
toJSON() {
return {
password: this.password.value,
};
}
static init() {
const state = new ConfirmPasswordState();
state.password.setType('password');
state.confirmPassword.setType('password');
/**
* @todo use `extends string ? ...` as a type conditional to auto do this
*/
state.password.setValidator(value => {
// @todo password rules...
return validators_1.isValidPassword(value) ? true : 'is not valid password';
});
/**
* @todo could disable it if we don't have a value in password
*/
state.confirmPassword.setValidator(value => {
if (!validators_1.isValidPassword(value)) {
// can do password validation here
return 'is not valid password';
}
else if (value !== state.password.value) {
return 'passwords must match';
}
else {
return true;
}
});
return state;
}
}
tslib_1.__decorate([
mobx_1.observable.ref
], ConfirmPasswordState.prototype, "password", void 0);
tslib_1.__decorate([
mobx_1.observable.ref
], ConfirmPasswordState.prototype, "confirmPassword", void 0);
tslib_1.__decorate([
mobx_1.computed
], ConfirmPasswordState.prototype, "isValid", null);
exports.ConfirmPasswordState = ConfirmPasswordState;
//# sourceMappingURL=ConfirmPasswordState.js.map