@ozen-ui/kit
Version:
React component library
62 lines (61 loc) • 3.9 kB
JavaScript
"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 useThemeProps_1 = require("../../hooks/useThemeProps");
var classname_1 = require("../../utils/classname");
var FormControlCarcass_1 = require("../FormControlCarcass");
var RadioGroupNext_1 = require("../RadioGroupNext");
var constants_1 = require("./constants");
exports.cnRadio = (0, classname_1.cn)('RadioNext');
exports.Radio = (0, react_1.forwardRef)(function (inProps, ref) {
var props = (0, useThemeProps_1.useThemeProps)({
props: inProps,
name: 'RadioNext',
});
var _a = props.align, alignProp = _a === void 0 ? constants_1.RADIO_DEFAULT_ALIGN : _a, _b = props.mirrored, mirroredProp = _b === void 0 ? constants_1.RADIO_DEFAULT_MIRRORED : _b, hint = props.hint, hintProps = props.hintProps, renderAfter = props.renderAfter, renderAfterProps = props.renderAfterProps, dataTestid = props.dataTestid, _c = props.variant, variantProp = _c === void 0 ? constants_1.RADIO_DEFAULT_VARIANT : _c, _d = props.size, sizeProp = _d === void 0 ? constants_1.RADIO_DEFAULT_SIZE : _d, onChangeProp = props.onChange, checkedProp = props.checked, nameProp = props.name, className = props.className, label = props.label, carcassProps = props.carcassProps, _e = props.disabled, disabled = _e === void 0 ? constants_1.RADIO_DEFAULT_DISABLED : _e, inputRef = props.inputRef, other = tslib_1.__rest(props, ["align", "mirrored", "hint", "hintProps", "renderAfter", "renderAfterProps", "dataTestid", "variant", "size", "onChange", "checked", "name", "className", "label", "carcassProps", "disabled", "inputRef"]);
var radioGroup = (0, RadioGroupNext_1.useRadioGroupContext)();
var checked = checkedProp;
var name = nameProp;
var size = sizeProp;
var variant = variantProp;
var align = alignProp;
var mirrored = mirroredProp;
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;
}
if (inProps.variant === undefined && radioGroup.variant) {
variant = radioGroup.variant;
}
if (inProps.align === undefined && radioGroup.align) {
align = radioGroup.align;
}
if (inProps.mirrored === undefined && radioGroup.mirrored) {
mirrored = radioGroup.mirrored;
}
}
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(FormControlCarcass_1.FormControlCarcass, tslib_1.__assign({}, carcassProps, { ref: ref, size: size, variant: variant, align: align, mirrored: mirrored, hint: hint, label: label, hintProps: hintProps, disabled: disabled, className: (0, exports.cnRadio)({
disabled: disabled,
variant: variant,
mirrored: mirrored,
size: size,
}, [className]), controlProps: {
className: (0, exports.cnRadio)('Box'),
}, renderAfter: renderAfter, renderAfterProps: renderAfterProps, "data-testid": dataTestid }),
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)('BoxRadio') })));
});
exports.Radio.displayName = 'Radio';