UNPKG

@xgovformbuilder/govuk-react-jsx

Version:

> This package is no longer maintained and will not receive updates bringing it beyond govuk-frontend 4.0.1. If you are using this in your project the simplest way forward is to copy and paste the components from here into your project allowing you to kee

72 lines (65 loc) 3.63 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; 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) { _defineProperty(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; } import React from 'react'; import { Label, Hint, ErrorMessage } from '../..'; var Input = /*#__PURE__*/React.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 = _objectWithoutProperties(props, _excluded); var describedByValue = describedBy || ''; var hintComponent; var errorMessageComponent; if (hint) { var hintId = "".concat(id, "-hint"); describedByValue += " ".concat(hintId); hintComponent = /*#__PURE__*/React.createElement(Hint, _extends({}, hint, { id: hintId })); } if (errorMessage) { var errorId = id ? "".concat(id, "-error") : ''; describedByValue += " ".concat(errorId); errorMessageComponent = /*#__PURE__*/React.createElement(ErrorMessage, _extends({}, errorMessage, { id: errorId })); } var input = /*#__PURE__*/React.createElement("input", _extends({ 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.createElement("div", { className: "govuk-form-group ".concat((formGroup === null || formGroup === void 0 ? void 0 : formGroup.className) || '', " ").concat(errorMessage ? 'govuk-form-group--error' : '', " ") }, /*#__PURE__*/React.createElement(Label, _extends({}, label, { htmlFor: id })), hintComponent, errorMessageComponent, prefix || suffix ? /*#__PURE__*/React.createElement("div", { className: "govuk-input__wrapper" }, prefix ? /*#__PURE__*/React.createElement("div", _extends({ "aria-hidden": "true" }, _objectSpread(_objectSpread({}, prefix), {}, { className: "govuk-input__prefix ".concat(prefix.className ? prefix.className : '') }))) : null, input, suffix ? /*#__PURE__*/React.createElement("div", _extends({ "aria-hidden": "true" }, _objectSpread(_objectSpread({}, suffix), {}, { className: "govuk-input__suffix ".concat(suffix.className ? suffix.className : '') }))) : null) : input); }); Input.displayName = 'Input'; Input.defaultProps = { type: 'text' }; export { Input };