govuk-react-jsx
Version:
[](https://github.com/alphagov/govuk-frontend/releases/tag/v4.0.1) [ • 4.17 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Input = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _ = require("../..");
var _excluded = ["className", "aria-describedby", "errorMessage", "formGroup", "hint", "label", "name", "id", "prefix", "suffix"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
var Input = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
var className = props.className,
describedBy = props['aria-describedby'],
errorMessage = props.errorMessage,
formGroup = props.formGroup,
hint = props.hint,
label = props.label,
name = props.name,
id = props.id,
prefix = props.prefix,
suffix = props.suffix,
attributes = (0, _objectWithoutProperties2["default"])(props, _excluded);
var describedByValue = describedBy || '';
var hintComponent;
var errorMessageComponent;
if (hint) {
var hintId = "".concat(id, "-hint");
describedByValue += " ".concat(hintId);
hintComponent = /*#__PURE__*/_react["default"].createElement(_.Hint, (0, _extends2["default"])({}, hint, {
id: hintId
}));
}
if (errorMessage) {
var errorId = id ? "".concat(id, "-error") : '';
describedByValue += " ".concat(errorId);
errorMessageComponent = /*#__PURE__*/_react["default"].createElement(_.ErrorMessage, (0, _extends2["default"])({}, errorMessage, {
id: errorId
}));
}
var input = /*#__PURE__*/_react["default"].createElement("input", (0, _extends2["default"])({
ref: ref,
id: id,
className: "govuk-input ".concat(className || '', " ").concat(errorMessage ? ' govuk-input--error' : ''),
name: name || id,
"aria-describedby": describedByValue || null
}, attributes));
return /*#__PURE__*/_react["default"].createElement("div", {
className: "govuk-form-group ".concat((formGroup === null || formGroup === void 0 ? void 0 : formGroup.className) || '', " ").concat(errorMessage ? 'govuk-form-group--error' : '', " ")
}, /*#__PURE__*/_react["default"].createElement(_.Label, (0, _extends2["default"])({}, label, {
htmlFor: id
})), hintComponent, errorMessageComponent, prefix || suffix ? /*#__PURE__*/_react["default"].createElement("div", {
className: "govuk-input__wrapper"
}, prefix ? /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
"aria-hidden": "true"
}, _objectSpread(_objectSpread({}, prefix), {}, {
className: "govuk-input__prefix ".concat(prefix.className ? prefix.className : '')
}))) : null, input, suffix ? /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
"aria-hidden": "true"
}, _objectSpread(_objectSpread({}, suffix), {}, {
className: "govuk-input__suffix ".concat(suffix.className ? suffix.className : '')
}))) : null) : input);
});
exports.Input = Input;
Input.displayName = 'Input';
Input.defaultProps = {
type: 'text'
};