UNPKG

grommet

Version:

focus on the essential experience

81 lines (67 loc) 2.74 kB
"use strict"; var _react = _interopRequireDefault(require("react")); var _react2 = require("@storybook/react"); var _grommet = require("grommet"); var _themes = require("grommet/themes"); var _data = require("./data"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var controlledColumns = _data.columns.map(function (col) { return _extends({}, col); }); delete controlledColumns[0].footer; delete controlledColumns[3].footer; delete controlledColumns[4].footer; delete controlledColumns[4].aggregate; var ControlledDataTable = function ControlledDataTable() { var _React$useState = _react["default"].useState([]), checked = _React$useState[0], setChecked = _React$useState[1]; var onCheck = function onCheck(event, value) { if (event.target.checked) { setChecked([].concat(checked, [value])); } else { setChecked(checked.filter(function (item) { return item !== value; })); } }; var onCheckAll = function onCheckAll(event) { return setChecked(event.target.checked ? _data.DATA.map(function (datum) { return datum.name; }) : []); }; return /*#__PURE__*/_react["default"].createElement(_grommet.Grommet, { theme: _themes.grommet }, /*#__PURE__*/_react["default"].createElement(_grommet.Box, { align: "center", pad: "medium" }, /*#__PURE__*/_react["default"].createElement(_grommet.DataTable, { columns: [{ property: 'checkbox', render: function render(datum) { return /*#__PURE__*/_react["default"].createElement(_grommet.CheckBox, { key: datum.name, checked: checked.indexOf(datum.name) !== -1, onChange: function onChange(e) { return onCheck(e, datum.name); } }); }, header: /*#__PURE__*/_react["default"].createElement(_grommet.CheckBox, { checked: checked.length === _data.DATA.length, indeterminate: checked.length > 0 && checked.length < _data.DATA.length, onChange: onCheckAll }), sortable: false }].concat(controlledColumns).map(function (col) { return _extends({}, col); }), data: _data.DATA, sortable: true, size: "medium" }))); }; (0, _react2.storiesOf)('DataTable', module).add('Controlled', function () { return /*#__PURE__*/_react["default"].createElement(ControlledDataTable, null); });