@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
JavaScript
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;