UNPKG

react-lightning-design-system

Version:

Salesforce Lightning Design System components built with React

60 lines (58 loc) 2.04 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; var _excluded = ["id", "className", "label", "name", "value", "inputRef", "onChange", "children"]; import React, { useId, useContext } from 'react'; import classnames from 'classnames'; import { RadioGroupContext } from './RadioGroup'; import { useEventCallback } from './hooks'; /** * */ /** * */ export var Radio = function Radio(_ref) { var id_ = _ref.id, className = _ref.className, label = _ref.label, name = _ref.name, value = _ref.value, inputRef = _ref.inputRef, onChange_ = _ref.onChange, children = _ref.children, props = _objectWithoutProperties(_ref, _excluded); var _useContext = useContext(RadioGroupContext), grpName = _useContext.name, error = _useContext.error, errorId = _useContext.errorId, onValueChange = _useContext.onValueChange; var prefix = useId(); var id = id_ !== null && id_ !== void 0 ? id_ : "".concat(prefix, "-id"); var onChange = useEventCallback(function (e) { onChange_ === null || onChange_ === void 0 || onChange_(e); if (value != null) { onValueChange === null || onValueChange === void 0 || onValueChange(value); } }); var radioClassNames = classnames(className, 'slds-radio'); return /*#__PURE__*/React.createElement("span", { className: radioClassNames }, /*#__PURE__*/React.createElement("input", _extends({ ref: inputRef, type: "radio", name: name !== null && name !== void 0 ? name : grpName, value: value, onChange: onChange }, props, { id: id, "aria-describedby": error ? errorId : undefined })), /*#__PURE__*/React.createElement("label", { className: "slds-radio__label", htmlFor: id }, /*#__PURE__*/React.createElement("span", { className: "slds-radio_faux" }), /*#__PURE__*/React.createElement("span", { className: "slds-form-element__label" }, label || children))); }; //# sourceMappingURL=Radio.js.map