UNPKG

@s-ui/react-atom-radio-button

Version:

AtomRadioButton is a component that displays an input radio w/ its expected behavior

45 lines 1.56 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; var _excluded = ["id", "disabled", "checked", "onChange", "isHidden", "value"]; import { forwardRef } from 'react'; import cx from 'classnames'; import PropTypes from 'prop-types'; import { BASE_CLASS, CLASS_HIDDEN } from './settings.js'; import { jsx as _jsx } from "react/jsx-runtime"; var AtomRadioButton = /*#__PURE__*/forwardRef(function (_ref, ref) { var _cx; var id = _ref.id, disabled = _ref.disabled, _ref$checked = _ref.checked, checked = _ref$checked === void 0 ? false : _ref$checked, onChange = _ref.onChange, isHidden = _ref.isHidden, value = _ref.value, props = _objectWithoutPropertiesLoose(_ref, _excluded); var handleChange = function handleChange(ev) { if (!disabled) { var _ev$target = ev.target, name = _ev$target.name, _value = _ev$target.value, _checked = _ev$target.checked; typeof onChange === 'function' && onChange(ev, { name: name, value: _value, checked: _checked }); } }; var className = cx(BASE_CLASS, (_cx = {}, _cx[CLASS_HIDDEN] = isHidden, _cx)); return /*#__PURE__*/_jsx("input", _extends({ className: className, value: value, type: "radio", id: id, disabled: disabled, checked: checked, onChange: handleChange, ref: ref }, props)); }); AtomRadioButton.displayName = 'AtomRadioButton'; export default AtomRadioButton;