UNPKG

@trellixio/roaster-coffee

Version:
49 lines (43 loc) 1.65 kB
'use strict'; 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