@trellixio/roaster-coffee
Version:
Beans' product component library
49 lines (43 loc) • 1.65 kB
JavaScript
;
var React = require('react');
var index$1 = require('../../../utils/classNames/index.js');
var index = require('../../../utils/useUncontrolled/index.js');
require('@floating-ui/react');
var CheckboxGroup_context = require('./CheckboxGroup.context.js');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
for (var k in e) {
n[k] = e[k];
}
}
n.default = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
const CheckboxGroup = React__namespace.forwardRef((props, ref) => {
const { title, children, className, value, defaultValue, onChange, orientation = "vertical" } = props;
const [internalValue, setInternalValue] = index.useUncontrolled({
value,
defaultValue,
finalValue: [],
onChange
});
const handleChange = (event) => {
const itemValue = event.currentTarget.value;
setInternalValue(
internalValue.includes(itemValue) ? internalValue.filter((item) => item !== itemValue) : [...internalValue, itemValue]
);
};
return /* @__PURE__ */ React__namespace.createElement(CheckboxGroup_context.CheckboxGroupProvider, { value: { value: internalValue, onChange: handleChange } }, /* @__PURE__ */ React__namespace.createElement("p", null, title), /* @__PURE__ */ React__namespace.createElement(
"div",
{
ref,
className: index$1.classNames("option-list checkbox", { "items-group": orientation === "horizontal" }, className)
},
children
));
});
CheckboxGroup.displayName = "CheckboxGroup";
exports.CheckboxGroup = CheckboxGroup;
//# sourceMappingURL=CheckboxGroup.js.map