@momentum-ui/react-collaboration
Version:
Cisco Momentum UI Framework for React Collaboration Applications
45 lines • 2.28 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
import React, { useContext, useRef } from 'react';
import { FocusRing } from '@react-aria/focus';
import { useRadio } from '@react-aria/radio';
import { useId } from '@react-aria/utils';
import classnames from 'classnames';
import { STYLE, DEFAULTS } from './RadioGroup.constants';
import { RadioContext } from './RadioGroup';
import Text from '../Text';
import './RadioGroup.style.scss';
/**
* @deprecated Use the equivalent from momentum.design (NPM: `@momentum-design/components/dist/react`)
*/
var Radio = function (props) {
var className = props.className, _a = props.isDisabled, isDisabled = _a === void 0 ? DEFAULTS.OPTION_DISABLED : _a, id = props.id, description = props.description, style = props.style, label = props.label;
var state = useContext(RadioContext);
var ref = useRef(null);
var radioId = useId(id);
var radioProps = __assign(__assign({ 'aria-label': props['aria-label'] || label }, props), (description
? {
'aria-describedby': "radio-description-".concat(radioId, " ").concat(props['aria-describedby'] || '').trimEnd(),
}
: {}));
var inputProps = useRadio(radioProps, state, ref).inputProps;
// remove id from input to only apply it to the label
delete inputProps.id;
return (React.createElement("div", { "data-disabled": isDisabled, className: classnames(STYLE.wrapper, className), style: style },
React.createElement("label", { id: id, className: STYLE.label },
React.createElement(FocusRing, null,
React.createElement("input", __assign({}, inputProps, { className: STYLE.button, ref: ref }))),
label),
description && (React.createElement(Text, { tagName: "small", type: "body-secondary", className: STYLE.radioDescription, id: "radio-description-".concat(radioId) }, description))));
};
export default Radio;
//# sourceMappingURL=Radio.js.map