fenextjs-component
Version:
42 lines • 2.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.InputRadio = void 0;
const tslib_1 = require("tslib");
const react_1 = tslib_1.__importStar(require("react"));
const Check_1 = require("fenextjs-svg/cjs/Check");
const env_log_1 = require("fenextjs-functions/cjs/env_log");
const fenextjs_hook_1 = require("fenextjs-hook");
const InputRadio = ({ classNameContent = "", classNameLabel = "", classNameLabelActive = "", classNameLabelInactive = "", classNameText = "", classNameContentRadio = "", classNameContentRadioActive = "", classNameContentRadioInactive = "", classNameRadio = "", classNameRadioActive = "", classNameRadioInactive = "", labelPosition = "right", name = "", onChange = (e) => {
(0, env_log_1.env_log)(e, {
name: "input radio onchange",
});
}, onChangeData, defaultValue = undefined, value = undefined, disabled = false, icon = react_1.default.createElement(Check_1.SvgCheck, null), items = [], ...props }) => {
const { _t } = (0, fenextjs_hook_1.use_T)({ ...props });
const [checked, setChecked] = (0, react_1.useState)(defaultValue);
const onChecked = (i) => () => {
if (disabled) {
return;
}
setChecked(i);
onChange(i);
onChangeData?.(i?.data);
};
return (react_1.default.createElement("div", { className: `fenext-content-radio ${classNameContent}` }, items.map((item, i) => {
const isCheck = (value?.id ?? checked?.id) == item.id;
return (react_1.default.createElement("label", { key: i, className: `fenext-input-radio ${labelPosition} ${classNameLabel} ${isCheck
? classNameLabelActive
: classNameLabelInactive}`, onClick: onChecked(item) },
react_1.default.createElement("input", { type: "radio", name: name, defaultChecked: item?.id == defaultValue?.id, className: `fenext-input-radio-input fenext-input-radio-input-id-${item.id}` }),
react_1.default.createElement("span", { className: `fenext-input-radio-box ${classNameContentRadio} ${isCheck
? classNameContentRadioActive
: classNameContentRadioInactive}` },
react_1.default.createElement("span", { className: `
fenext-input-radio-box-icon
${classNameRadio} ${isCheck
? classNameRadioActive
: classNameRadioInactive}` }, isCheck && icon)),
react_1.default.createElement("span", { className: `fenext-input-radio-text ${classNameText}` }, _t(item.label))));
})));
};
exports.InputRadio = InputRadio;
//# sourceMappingURL=index.js.map