@ozen-ui/kit
Version:
React component library
46 lines (45 loc) • 3.04 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RadioGroup = exports.cnRadioGroup = void 0;
var tslib_1 = require("tslib");
require("./RadioGroup.css");
var react_1 = tslib_1.__importDefault(require("react"));
var useControlled_1 = require("../../hooks/useControlled");
var useThemeProps_1 = require("../../hooks/useThemeProps");
var classname_1 = require("../../utils/classname");
var polymorphicComponentWithRef_1 = require("../../utils/polymorphicComponentWithRef");
var FormGroup_1 = require("../FormGroup");
var FormTitle_1 = require("../FormTitle");
var constants_1 = require("./constants");
var RadioGroupContext_1 = require("./RadioGroupContext");
exports.cnRadioGroup = (0, classname_1.cn)('RadioGroupNext');
exports.RadioGroup = (0, polymorphicComponentWithRef_1.polymorphicComponentWithRef)(function (inProps, ref) {
var props = (0, useThemeProps_1.useThemeProps)({
props: inProps,
name: 'RadioGroupNext',
});
var _a = props.direction, direction = _a === void 0 ? constants_1.RADIO_GROUP_DEFAULT_DIRECTION : _a, _b = props.size, size = _b === void 0 ? constants_1.RADIO_GROUP_DEFAULT_SIZE : _b, _c = props.as, Tag = _c === void 0 ? constants_1.RADIO_GROUP_DEFAULT_AS : _c, _d = props.variant, variant = _d === void 0 ? constants_1.RADIO_GROUP_DEFAULT_VARIANT : _d, _e = props.mirrored, mirrored = _e === void 0 ? constants_1.RADIO_GROUP_DEFAULT_MIRRORED : _e, _f = props.align, align = _f === void 0 ? constants_1.RADIO_GROUP_DEFAULT_ALIGN : _f, title = props.title, className = props.className, children = props.children, name = props.name, valueProp = props.value, defaultValue = props.defaultValue, onChange = props.onChange, other = tslib_1.__rest(props, ["direction", "size", "as", "variant", "mirrored", "align", "title", "className", "children", "name", "value", "defaultValue", "onChange"]);
var _g = tslib_1.__read((0, useControlled_1.useControlled)({
value: valueProp,
defaultValue: defaultValue,
name: 'RadioGroup',
state: 'value',
}), 2), valueState = _g[0], setValueState = _g[1];
var handleChange = function (event) {
setValueState(event.target.value);
onChange === null || onChange === void 0 ? void 0 : onChange(event);
};
return (react_1.default.createElement(RadioGroupContext_1.RadioGroupContext.Provider, { value: {
value: valueState,
onChange: handleChange,
name: name,
size: size,
variant: variant,
mirrored: mirrored,
align: align,
} },
react_1.default.createElement(Tag, tslib_1.__assign({ className: (0, exports.cnRadioGroup)({ size: size }, [className]), role: "radiogroup" }, other, { ref: ref }),
title && react_1.default.createElement(FormTitle_1.FormTitle, { size: size }, title),
react_1.default.createElement(FormGroup_1.FormGroup, { direction: direction, size: size }, children))));
});
exports.RadioGroup.displayName = 'RadioGroup';