UNPKG

zmp-react

Version:

Build full featured iOS & Android apps using ZMP & React

53 lines (50 loc) 1.53 kB
import _extends from "@babel/runtime/helpers/extends"; import React, { forwardRef, useRef, useImperativeHandle } from 'react'; import { classNames, getExtraAttrs, emit } from '../shared/utils'; import { colorClasses } from '../shared/mixins'; var Radio = /*#__PURE__*/forwardRef(function (props, ref) { var className = props.className, id = props.id, style = props.style, children = props.children, value = props.value, disabled = props.disabled, readonly = props.readonly, checked = props.checked, defaultChecked = props.defaultChecked, name = props.name; var extraAttrs = getExtraAttrs(props); var elRef = useRef(null); var onChange = function onChange(event) { emit(props, 'change', event); }; useImperativeHandle(ref, function () { return { el: elRef.current }; }); var inputEl = /*#__PURE__*/React.createElement("input", { type: "radio", name: name, value: value, disabled: disabled, readOnly: readonly, checked: checked, defaultChecked: defaultChecked, onChange: onChange }); var iconEl = /*#__PURE__*/React.createElement("i", { className: "icon-radio" }); var classes = classNames(className, 'radio', { disabled: disabled }, colorClasses(props)); return /*#__PURE__*/React.createElement("label", _extends({ id: id, style: style, className: classes, ref: elRef }, extraAttrs), inputEl, iconEl, children); }); Radio.displayName = 'zmp-radio'; export default Radio;