@tpr/govuk-react-jsx
Version:
[](https://github.com/alphagov/govuk-frontend/releases/tag/v4.0.1) [ • 1.81 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Label = Label;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _excluded = ["govukClassNames", "className", "htmlFor", "children", "isPageHeading"];
function Label(props) {
var govukClassNames = props.govukClassNames,
className = props.className,
htmlFor = props.htmlFor,
children = props.children,
isPageHeading = props.isPageHeading,
attributes = (0, _objectWithoutProperties2["default"])(props, _excluded); // If no children, just don't output anything
if (!children) {
return null;
}
var classNames = govukClassNames || {};
classNames['govuk-label'] = classNames['govuk-label'] || 'govuk-label';
classNames['govuk-label-wrapper'] = classNames['govuk-label-wrapper'] || 'govuk-label-wrapper';
var label =
/*#__PURE__*/
// Stop eslint flagging the for/id combination as an error. It is failing due to the way the
// input and label are located in different components and so it cannot track the association
//
// eslint-disable-next-line jsx-a11y/label-has-for
_react["default"].createElement("label", (0, _extends2["default"])({
className: "".concat(classNames['govuk-label'], " ").concat(className || '')
}, attributes, {
htmlFor: htmlFor
}), children);
if (isPageHeading === true) {
return /*#__PURE__*/_react["default"].createElement("h1", {
className: classNames['govuk-label-wrapper']
}, label);
}
return label;
}