UNPKG

@wordpress/components

Version:
68 lines (55 loc) 1.78 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = RadioControl; var _element = require("@wordpress/element"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _lodash = require("lodash"); var _classnames = _interopRequireDefault(require("classnames")); var _compose = require("@wordpress/compose"); var _baseControl = _interopRequireDefault(require("../base-control")); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ function RadioControl({ label, className, selected, help, onChange, options = [], ...props }) { const instanceId = (0, _compose.useInstanceId)(RadioControl); const id = `inspector-radio-control-${instanceId}`; const onChangeValue = event => onChange(event.target.value); return !(0, _lodash.isEmpty)(options) && (0, _element.createElement)(_baseControl.default, { label: label, id: id, help: help, className: (0, _classnames.default)(className, 'components-radio-control') }, options.map((option, index) => (0, _element.createElement)("div", { key: `${id}-${index}`, className: "components-radio-control__option" }, (0, _element.createElement)("input", (0, _extends2.default)({ id: `${id}-${index}`, className: "components-radio-control__input", type: "radio", name: id, value: option.value, onChange: onChangeValue, checked: option.value === selected, "aria-describedby": !!help ? `${id}__help` : undefined }, props)), (0, _element.createElement)("label", { htmlFor: `${id}-${index}` }, option.label)))); } //# sourceMappingURL=index.js.map