@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).
78 lines (77 loc) • 3.15 kB
JSX
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TextInput = TextInput;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
function TextInput(_ref) {
var dataTrackable = _ref.dataTrackable,
_ref$errorText = _ref.errorText,
errorText = _ref$errorText === void 0 ? 'Please enter a value' : _ref$errorText,
fieldId = _ref.fieldId,
_ref$hasError = _ref.hasError,
hasError = _ref$hasError === void 0 ? false : _ref$hasError,
inputId = _ref.inputId,
inputName = _ref.inputName,
_ref$isDisabled = _ref.isDisabled,
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
_ref$isRequired = _ref.isRequired,
isRequired = _ref$isRequired === void 0 ? false : _ref$isRequired,
_ref$label = _ref.label,
label = _ref$label === void 0 ? '' : _ref$label,
_ref$placeHolder = _ref.placeHolder,
placeHolder = _ref$placeHolder === void 0 ? '' : _ref$placeHolder,
_ref$value = _ref.value,
value = _ref$value === void 0 ? '' : _ref$value,
description = _ref.description;
// Use inputId if inputName is not explicitly passed.
inputName = inputName || inputId;
var inputWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', {
'o-forms-input--invalid': hasError
}, {
'o-forms-field--optional': !isRequired
}]);
return /*#__PURE__*/_react["default"].createElement("label", {
id: fieldId,
className: "o-forms-field ncf__validation-error",
"data-validate": "required",
htmlFor: inputId
}, /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-title"
}, /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-title__main"
}, label), description ? /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-title__prompt"
}, description) : null), /*#__PURE__*/_react["default"].createElement("span", {
className: inputWrapperClassNames
}, /*#__PURE__*/_react["default"].createElement("input", {
type: "text",
id: inputId,
name: inputName,
placeholder: placeHolder,
"data-trackable": dataTrackable,
"aria-required": isRequired,
required: isRequired,
disabled: isDisabled,
defaultValue: value
}), /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-input__error"
}, errorText)));
}
TextInput.propTypes = {
dataTrackable: _propTypes["default"].string,
errorText: _propTypes["default"].string,
fieldId: _propTypes["default"].string,
hasError: _propTypes["default"].bool,
inputId: _propTypes["default"].string,
inputName: _propTypes["default"].string,
isDisabled: _propTypes["default"].bool,
isRequired: _propTypes["default"].bool,
label: _propTypes["default"].string,
placeHolder: _propTypes["default"].string,
value: _propTypes["default"].string,
description: _propTypes["default"].string
};