semantic-ui-react
Version:
The official Semantic-UI-React integration.
64 lines (46 loc) • 1.72 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _lib = require('../../lib');
var _Checkbox = require('../../modules/Checkbox');
var _Checkbox2 = _interopRequireDefault(_Checkbox);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* A Radio is sugar for <Checkbox radio />.
* Useful for exclusive groups of sliders or toggles.
* @see Checkbox
* @see Form
*/
function Radio(props) {
var slider = props.slider,
toggle = props.toggle,
type = props.type;
var rest = (0, _lib.getUnhandledProps)(Radio, props);
// const ElementType = getElementType(Radio, props)
// radio, slider, toggle are exclusive
// use an undefined radio if slider or toggle are present
var radio = !(slider || toggle) || undefined;
return _react2.default.createElement(_Checkbox2.default, (0, _extends3.default)({}, rest, { type: type, radio: radio, slider: slider, toggle: toggle }));
}
Radio.handledProps = ['slider', 'toggle', 'type'];
Radio._meta = {
name: 'Radio',
type: _lib.META.TYPES.ADDON
};
Radio.propTypes = process.env.NODE_ENV !== "production" ? {
/** Format to emphasize the current selection state. */
slider: _Checkbox2.default.propTypes.slider,
/** Format to show an on or off choice. */
toggle: _Checkbox2.default.propTypes.toggle,
/** HTML input type, either checkbox or radio. */
type: _Checkbox2.default.propTypes.type
} : {};
Radio.defaultProps = {
type: 'radio'
};
exports.default = Radio;