@coko/client
Version:
Client side common code for coko apps
97 lines (95 loc) • 4.11 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _AuthenticationForm = _interopRequireDefault(require("./AuthenticationForm"));
var _AuthenticationHeader = _interopRequireDefault(require("./AuthenticationHeader"));
var _AuthenticationWrapper = _interopRequireDefault(require("./AuthenticationWrapper"));
var _common = require("../common");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
// import styled from 'styled-components'
var ResetPassword = function ResetPassword(props) {
var className = props.className,
hasError = props.hasError,
hasSuccess = props.hasSuccess,
onSubmit = props.onSubmit,
verifying = props.verifying,
redirectToLogin = props.redirectToLogin,
redirectToLoginDelay = props.redirectToLoginDelay;
var success = !verifying && hasSuccess;
if (success) {
setTimeout(function () {
return redirectToLogin();
}, redirectToLoginDelay);
}
return /*#__PURE__*/_react["default"].createElement(_common.Page, {
maxWidth: 600
}, /*#__PURE__*/_react["default"].createElement(_AuthenticationWrapper["default"], {
className: className
}, /*#__PURE__*/_react["default"].createElement(_AuthenticationHeader["default"], null, "Reset password"), verifying && /*#__PURE__*/_react["default"].createElement(_common.Result, {
icon: /*#__PURE__*/_react["default"].createElement(_common.Spin, null),
title: "Verifying..."
}), success && /*#__PURE__*/_react["default"].createElement("div", {
role: "alert"
}, /*#__PURE__*/_react["default"].createElement(_common.Result, {
status: "success",
subTitle: "Redirecting you to login screen...",
title: "Password successfully changed"
})), !hasSuccess && !verifying && /*#__PURE__*/_react["default"].createElement(_AuthenticationForm["default"], {
errorMessage: "Something went wrong!",
hasError: hasError,
onSubmit: onSubmit,
submitButtonLabel: "Set new password"
}, hasError && /*#__PURE__*/_react["default"].createElement(_common.Paragraph, {
type: "danger"
}, "The most likely scenario is that you have already used this link to reset your password. If that is not the case, please contact the system administrator."), /*#__PURE__*/_react["default"].createElement(_common.Paragraph, null, "Please provide your new password in the fields below."), /*#__PURE__*/_react["default"].createElement(_common.Form.Item, {
label: "New password",
name: "password",
rules: [{
required: true,
message: 'New password is required'
}]
}, /*#__PURE__*/_react["default"].createElement(_common.Input, {
placeholder: "Enter new password",
type: "password"
})), /*#__PURE__*/_react["default"].createElement(_common.Form.Item, {
label: "Confirm new password",
name: "confirmPassword",
rules: [{
required: true,
message: 'Please confirm your new password!'
}, function (_ref) {
var getFieldValue = _ref.getFieldValue;
return {
validator: function validator(_, value) {
if (!value || getFieldValue('password') === value) {
return Promise.resolve();
}
return Promise.reject(new Error('The two passwords that you entered do not match!'));
}
};
}]
}, /*#__PURE__*/_react["default"].createElement(_common.Input, {
placeholder: "Enter new password again",
type: "password"
})))));
};
ResetPassword.propTypes = {
redirectToLogin: _propTypes["default"].func.isRequired,
onSubmit: _propTypes["default"].func.isRequired,
hasError: _propTypes["default"].bool,
hasSuccess: _propTypes["default"].bool,
verifying: _propTypes["default"].bool,
redirectToLoginDelay: _propTypes["default"].number
};
ResetPassword.defaultProps = {
hasError: false,
hasSuccess: false,
verifying: false,
redirectToLoginDelay: 3000
};
var _default = ResetPassword;
exports["default"] = _default;