UNPKG

@dotconnor/grommet

Version:

focus on the essential experience

52 lines (48 loc) 1.44 kB
import React, { useState } from 'react'; import { Box, Grommet, CheckBox } from 'grommet'; import { grommet } from 'grommet/themes'; export var Indeterminate = function Indeterminate() { var _useState = useState([]), checked = _useState[0], setChecked = _useState[1]; var checkboxes = ['fruits', 'vegetables', 'olive oil']; var onCheckAll = function onCheckAll(event) { if (event.target.checked) { setChecked(checkboxes); } else { setChecked([]); } }; var onCheck = function onCheck(event, value) { if (event.target.checked) { setChecked([].concat(checked, [value])); } else { setChecked(checked.filter(function (item) { return item !== value; })); } }; return /*#__PURE__*/React.createElement(Grommet, { theme: grommet }, /*#__PURE__*/React.createElement(Box, { align: "center", pad: "large" }, /*#__PURE__*/React.createElement(Box, { direction: "row", gap: "medium" }, /*#__PURE__*/React.createElement(CheckBox, { checked: checked.length === 3, indeterminate: checked.length > 0 && checked.length < 3, label: "All", onChange: onCheckAll }), checkboxes.map(function (item) { return /*#__PURE__*/React.createElement(CheckBox, { key: item, checked: checked.includes(item), label: item, onChange: function onChange(e) { return onCheck(e, item); } }); })))); };