UNPKG

@ozen-ui/kit

Version:

React component library

53 lines (52 loc) 3.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Radio = exports.cnRadio = void 0; var tslib_1 = require("tslib"); require("./Radio.css"); var react_1 = tslib_1.__importStar(require("react")); var useDeprecated_1 = require("../../hooks/useDeprecated"); var useThemeProps_1 = require("../../hooks/useThemeProps"); var classname_1 = require("../../utils/classname"); var FormControlLabel_1 = require("../FormControlLabel"); var RadioGroupContext_1 = require("../RadioGroup/RadioGroupContext"); var constants_1 = require("./constants"); exports.cnRadio = (0, classname_1.cn)('Radio'); /** * @deprecated Компонент устарел. Для замены используйте компонент RadioNext */ exports.Radio = (0, react_1.forwardRef)(function (inProps, ref) { (0, useDeprecated_1.useDeprecatedComponent)('Radio'); var props = (0, useThemeProps_1.useThemeProps)({ props: inProps, name: 'Radio', }); var _a = props.align, align = _a === void 0 ? constants_1.RADIO_DEFAULT_ALIGN : _a, _b = props.labelPlacement, labelPlacement = _b === void 0 ? constants_1.RADIO_DEFAULT_LABEL_PLACEMENT : _b, _c = props.size, sizeProp = _c === void 0 ? constants_1.RADIO_DEFAULT_SIZE : _c, onChangeProp = props.onChange, checkedProp = props.checked, nameProp = props.name, className = props.className, label = props.label, labelProps = props.labelProps, disabled = props.disabled, inputRef = props.inputRef, other = tslib_1.__rest(props, ["align", "labelPlacement", "size", "onChange", "checked", "name", "className", "label", "labelProps", "disabled", "inputRef"]); var radioGroup = (0, react_1.useContext)(RadioGroupContext_1.RadioGroupContext); var checked = checkedProp; var name = nameProp; var size = sizeProp; if (radioGroup) { if (checked === undefined && radioGroup.value) { checked = radioGroup.value === other.value; } if (name === undefined && radioGroup.name) { name = radioGroup.name; } if (inProps.size === undefined && radioGroup.size) { size = radioGroup.size; } } var onChange = function (event) { onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(event); radioGroup === null || radioGroup === void 0 ? void 0 : radioGroup.onChange(event); }; return (react_1.default.createElement(FormControlLabel_1.FormControlLabel, tslib_1.__assign({ label: label, size: size, labelPlacement: labelPlacement, disabled: disabled, align: align, className: className, ref: ref }, labelProps), react_1.default.createElement("span", { className: (0, exports.cnRadio)({ size: size, disabled: disabled, checked: checked, }) }, react_1.default.createElement("input", tslib_1.__assign({ className: (0, exports.cnRadio)('Input'), disabled: disabled, checked: checked, onChange: onChange, name: name }, other, { type: "radio", ref: inputRef })), react_1.default.createElement("span", { className: (0, exports.cnRadio)('Box') })))); }); exports.Radio.displayName = 'Radio';