@coko/client
Version:
Client side common code for coko apps
129 lines (128 loc) • 6.02 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 _styledComponents = _interopRequireDefault(require("styled-components"));
var _antd = require("antd");
var _common = require("../common");
var _ProfileForm = _interopRequireDefault(require("./ProfileForm"));
var _excluded = ["className", "form", "loading", "message", "onSubmit", "submissionStatus"];
var _templateObject, _templateObject2;
/* eslint-disable react/jsx-props-no-spreading */
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
var Col = (0, _styledComponents["default"])(_antd.Col)(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
var Row = function Row(_ref) {
var children = _ref.children;
return /*#__PURE__*/_react["default"].createElement(_antd.Row, {
align: "baseline",
gutter: 8
}, children);
};
var Wrapper = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([""])));
var ChangePassword = function ChangePassword(props) {
var className = props.className,
form = props.form,
loading = props.loading,
message = props.message,
onSubmit = props.onSubmit,
submissionStatus = props.submissionStatus,
rest = _objectWithoutProperties(props, _excluded);
return /*#__PURE__*/_react["default"].createElement(Wrapper, {
className: className
}, /*#__PURE__*/_react["default"].createElement(_ProfileForm["default"], _extends({
form: form,
loading: loading,
message: message,
onSubmit: onSubmit,
submissionStatus: submissionStatus
}, rest), /*#__PURE__*/_react["default"].createElement(_common.FormSection, {
label: "Password",
last: true
}, /*#__PURE__*/_react["default"].createElement(Row, null, /*#__PURE__*/_react["default"].createElement(Col, {
sm: 12,
xs: 24
}, /*#__PURE__*/_react["default"].createElement(_common.Form.Item, {
label: "Current password",
name: "currentPassword",
rules: [{
required: true,
message: 'Please provide current password before changing it'
}]
}, /*#__PURE__*/_react["default"].createElement(_common.Input, {
autoComplete: "current-password",
"data-testid": "currentPassword",
type: "password"
})))), /*#__PURE__*/_react["default"].createElement(Row, null, /*#__PURE__*/_react["default"].createElement(Col, {
sm: 12,
xs: 24
}, /*#__PURE__*/_react["default"].createElement(_common.Form.Item, {
dependencies: ['currentPassword'],
label: "New password",
name: "newPassword",
rules: [{
required: true,
message: 'This field is required'
}, function (_ref2) {
var getFieldValue = _ref2.getFieldValue;
return {
validator: function validator(_, value) {
if (value && !!getFieldValue('currentPassword') || !value) {
return Promise.resolve();
}
return Promise.reject(new Error('You must first provide the current password in order to change it!'));
}
};
}]
}, /*#__PURE__*/_react["default"].createElement(_common.Input, {
autoComplete: "new-password",
"data-testid": "newPassword",
type: "password"
}))), /*#__PURE__*/_react["default"].createElement(Col, {
sm: 12,
xs: 24
}, /*#__PURE__*/_react["default"].createElement(_common.Form.Item, {
dependencies: ['newPassword'],
label: "Password confirmation",
name: "newPasswordConfirmation",
rules: [{
required: true,
message: 'This field is required'
}, function (_ref3) {
var getFieldValue = _ref3.getFieldValue;
return {
validator: function validator(_, value) {
if (!value || getFieldValue('newPassword') === value) {
return Promise.resolve();
}
return Promise.reject(new Error('The two passwords that you entered do not match!'));
}
};
}]
}, /*#__PURE__*/_react["default"].createElement(_common.Input, {
autoComplete: "new-password",
"data-testid": "newPasswordConfirmation",
type: "password"
})))))));
};
ChangePassword.propTypes = {
form: _propTypes["default"].shape(),
loading: _propTypes["default"].bool,
message: _propTypes["default"].string,
onSubmit: _propTypes["default"].func.isRequired,
submissionStatus: _propTypes["default"].oneOf(['success', 'error', 'danger'])
};
ChangePassword.defaultProps = {
form: null,
loading: false,
message: '',
submissionStatus: null
};
var _default = ChangePassword;
exports["default"] = _default;