UNPKG

@smart-react-components/ui

Version:
70 lines (69 loc) 3.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Position = void 0; const element_props_1 = __importDefault(require("@smart-react-components/core/element-props")); const intrinsic_styled_core_props_1 = __importDefault(require("@smart-react-components/core/element-props/intrinsic-styled-core-props")); const react_1 = __importDefault(require("react")); const FormInlineLabel_1 = __importDefault(require("../components/Form/FormInlineLabel")); const HiddenInput_1 = __importDefault(require("../components/Form/HiddenInput")); const types_1 = require("../types"); const CheckboxElement_1 = __importDefault(require("../components/Checkbox/CheckboxElement")); var types_2 = require("../types"); Object.defineProperty(exports, "Position", { enumerable: true, get: function () { return types_2.OrderPosition; } }); const Checkbox = react_1.default.forwardRef((props, forwardRef) => { const isChecked = react_1.default.useMemo(() => { if (props.setChecked) { return props.isChecked; } if (props.setActive) { return typeof props.active.find(v => v === props.value) !== 'undefined'; } return false; }, [props.active, props.isChecked]); const handleOnChange = () => { if (!props.isDisabled) { if (props.setChecked) { props.setChecked(!props.isChecked); } else if (props.setActive) { if (!props.active.includes(props.value)) { props.setActive([...props.active, props.value]); } else { props.setActive(props.active.filter(item => item !== props.value)); } } } }; const input = (react_1.default.createElement(HiddenInput_1.default, Object.assign({ checked: isChecked, onChange: handleOnChange, ref: forwardRef, type: "checkbox" }, (props.isDisabled && { disabled: true }), (props.isRequired && { required: true }), (props.name && { name: props.name })))); return (react_1.default.createElement(FormInlineLabel_1.default, Object.assign({ formSize: props.size, formSizeSm: props.sizeSm, formSizeMd: props.sizeMd, formSizeLg: props.sizeLg, formSizeXl: props.sizeXl, isBlock: props.isBlock, isDisabled: props.isDisabled, labelPosition: props.position, palette: props.palette }, (0, element_props_1.default)(props, [intrinsic_styled_core_props_1.default])), react_1.default.cloneElement(props.template, { checkboxSize: props.size, checkboxSizeSm: props.sizeSm, checkboxSizeMd: props.sizeMd, checkboxSizeLg: props.sizeLg, checkboxSizeXl: props.sizeXl, children: (react_1.default.createElement(react_1.default.Fragment, null, input, props.template.props.children)), isChecked, isDisabled: props.isDisabled, isIndeterminate: props.isIndeterminate, isOutline: props.isOutline, isSoft: props.isSoft, palette: props.palette, shape: props.shape, }), props.label && react_1.default.createElement("span", null, props.label))); }); Checkbox.defaultProps = { palette: 'primary', position: types_1.OrderPosition.RIGHT, shape: 'rectangle', size: 'medium', template: react_1.default.createElement(CheckboxElement_1.default, null), }; exports.default = Checkbox;