UNPKG

@shopify/polaris

Version:

Shopify’s product component library

54 lines (50 loc) 1.81 kB
import { objectWithoutProperties as _objectWithoutProperties } from '../../_virtual/_rollupPluginBabelHelpers.js'; import React$1 from 'react'; import { classNames } from '../../utilities/css.js'; import { buttonFrom } from '../Button/utils.js'; import { Label as Label$1 } from '../Label/Label.js'; export { labelID } from '../Label/Label.js'; import { InlineError as InlineError$1 } from '../InlineError/InlineError.js'; import styles from './Labelled.scss.js'; function Labelled(_ref) { var { id, label, error, action, helpText, children, labelHidden } = _ref, rest = _objectWithoutProperties(_ref, ["id", "label", "error", "action", "helpText", "children", "labelHidden"]); var className = classNames(labelHidden && styles.hidden); var actionMarkup = action ? /*#__PURE__*/React$1.createElement("div", { className: styles.Action }, buttonFrom(action, { plain: true })) : null; var helpTextMarkup = helpText ? /*#__PURE__*/React$1.createElement("div", { className: styles.HelpText, id: helpTextID(id) }, helpText) : null; var errorMarkup = error && typeof error !== 'boolean' && /*#__PURE__*/React$1.createElement("div", { className: styles.Error }, /*#__PURE__*/React$1.createElement(InlineError$1, { message: error, fieldID: id })); var labelMarkup = label ? /*#__PURE__*/React$1.createElement("div", { className: styles.LabelWrapper }, /*#__PURE__*/React$1.createElement(Label$1, Object.assign({ id: id }, rest, { hidden: false }), label), actionMarkup) : null; return /*#__PURE__*/React$1.createElement("div", { className: className }, labelMarkup, children, errorMarkup, helpTextMarkup); } function helpTextID(id) { return "".concat(id, "HelpText"); } export { Labelled, helpTextID };