UNPKG

@ozen-ui/kit

Version:

React component library

62 lines (61 loc) 3.9 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 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';