UNPKG

@financial-times/n-conversion-forms

Version:

Containing jsx components and styles for forms included on Accounts and Acqusition apps (next-signup, next-profile, next-retention, etc).

95 lines (94 loc) 4.38 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Password = Password; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); function Password(_ref) { var _ref$unknownUser = _ref.unknownUser, unknownUser = _ref$unknownUser === void 0 ? false : _ref$unknownUser, _ref$hasError = _ref.hasError, hasError = _ref$hasError === void 0 ? false : _ref$hasError, _ref$pattern = _ref.pattern, pattern = _ref$pattern === void 0 ? null : _ref$pattern, _ref$isDisabled = _ref.isDisabled, isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled, _ref$fieldId = _ref.fieldId, fieldId = _ref$fieldId === void 0 ? 'passwordField' : _ref$fieldId, _ref$inputId = _ref.inputId, inputId = _ref$inputId === void 0 ? 'password' : _ref$inputId, inputName = _ref.inputName, _ref$label = _ref.label, label = _ref$label === void 0 ? 'Password' : _ref$label, _ref$placeholder = _ref.placeholder, placeholder = _ref$placeholder === void 0 ? 'Enter a password' : _ref$placeholder, _ref$description = _ref.description, description = _ref$description === void 0 ? 'Use 8 or more characters. You can use letters, numbers or symbols' : _ref$description, _ref$showDescription = _ref.showDescription, showDescription = _ref$showDescription === void 0 ? true : _ref$showDescription, _ref$hasShowPassword = _ref.hasShowPassword, hasShowPassword = _ref$hasShowPassword === void 0 ? true : _ref$hasShowPassword; // This is necessary to make this backward compatible with the Handlebars partial. var showPasswordId = inputId === 'password' ? 'showPassword' : "".concat(inputId, "-showPassword"); var showPasswordName = showPasswordId; // Use inputId if inputName is not explicitly passed. inputName = inputName || inputId; var fieldClassNames = (0, _classnames["default"])(['o-forms-field', 'ncf__password-field', 'ncf__validation-error', { 'js-unknown-user-field': unknownUser }]); var inputWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--password', 'o-forms-input--checkbox', 'o-forms-input--suffix', { 'o-forms-input--invalid': hasError }]); return /*#__PURE__*/_react["default"].createElement("div", { id: fieldId, className: fieldClassNames, "data-validate": "required,password" }, /*#__PURE__*/_react["default"].createElement("label", { htmlFor: inputId, className: "o-forms-title" }, /*#__PURE__*/_react["default"].createElement("span", { className: "o-forms-title__main" }, label), showDescription ? /*#__PURE__*/_react["default"].createElement("span", { className: "o-forms-title__prompt" }, description) : null), /*#__PURE__*/_react["default"].createElement("div", { className: inputWrapperClassNames }, /*#__PURE__*/_react["default"].createElement("input", { type: "password", id: inputId, name: inputName, placeholder: placeholder, autoComplete: "new-password", "data-trackable": "field-password", "aria-required": "true", required: true, pattern: pattern, disabled: isDisabled }), hasShowPassword ? /*#__PURE__*/_react["default"].createElement("label", { className: "ncf__password-field--show-password" }, /*#__PURE__*/_react["default"].createElement("input", { type: "checkbox", id: showPasswordId, name: showPasswordName, "data-trackable": "field-show-password", "aria-label": "Show password" }), /*#__PURE__*/_react["default"].createElement("span", { className: "o-forms-input__label", "aria-hidden": "true" }, "Show password")) : null, /*#__PURE__*/_react["default"].createElement("div", { className: "o-forms-input__error" }, "Please enter a valid password"))); } Password.propTypes = { unknownUser: _propTypes["default"].bool, hasError: _propTypes["default"].bool, pattern: _propTypes["default"].string, isDisabled: _propTypes["default"].bool, fieldId: _propTypes["default"].string, inputId: _propTypes["default"].string, inputName: _propTypes["default"].string, label: _propTypes["default"].string, placeholder: _propTypes["default"].string };