@netdata/netdata-ui
Version:
netdata UI kit
93 lines • 3.37 kB
JavaScript
import React, { useMemo } from "react";
import { Checkbox } from "../../checkbox";
import RadioButton from "../../radio-button";
import Flex from "../../templates/flex";
var width = 32;
var Header = function Header(_ref) {
var table = _ref.table,
testPrefix = _ref.testPrefix;
return /*#__PURE__*/React.createElement(Flex, {
width: 4
}, /*#__PURE__*/React.createElement(Checkbox, {
"data-testid": "netdata-table-header-checkbox" + testPrefix,
checked: table.getIsAllRowsSelected(),
indeterminate: table.getIsSomeRowsSelected(),
onChange: function onChange(checked) {
table.getToggleAllRowsSelectedHandler()({
target: {
checked: checked
}
});
}
}));
};
var Cell = function Cell(_ref2) {
var _row$original, _row$original2, _row$original3, _row$original4, _row$original5;
var row = _ref2.row,
singleRowSelection = _ref2.singleRowSelection,
testPrefix = _ref2.testPrefix;
if (((_row$original = row.original) == null ? void 0 : _row$original.disabled) === "hidden") return null;
if (singleRowSelection) return /*#__PURE__*/React.createElement(RadioButton, {
"data-testid": "netdata-table-cell-radio-button" + testPrefix,
checked: !((_row$original2 = row.original) != null && _row$original2.disabled) && row.getIsSelected(),
name: "netdata-table-row-radio-button-selection",
onChange: function onChange(e) {
e == null || e.stopPropagation == null || e.stopPropagation();
row.getToggleSelectedHandler()({
target: {
checked: e.target.checked
}
});
},
disabled: ((_row$original3 = row.original) == null ? void 0 : _row$original3.disabled) || false
});
return /*#__PURE__*/React.createElement(Checkbox, {
"data-testid": "netdata-table-cell-checkbox" + testPrefix,
checked: !((_row$original4 = row.original) != null && _row$original4.disabled) && row.getIsSelected(),
indeterminate: row.getIsSomeSelected(),
onChange: function onChange(checked, e) {
e == null || e.stopPropagation == null || e.stopPropagation();
row.getToggleSelectedHandler()({
target: {
checked: checked
}
});
},
disabled: ((_row$original5 = row.original) == null ? void 0 : _row$original5.disabled) || false
});
};
export default (function (enabled, _ref3) {
var testPrefix = _ref3.testPrefix,
tableMeta = _ref3.tableMeta,
singleRowSelection = _ref3.singleRowSelection;
return useMemo(function () {
return enabled ? {
id: "checkbox",
headerString: "Selection",
enableHiding: false,
enableResizing: false,
header: function header(_ref4) {
var table = _ref4.table;
return !singleRowSelection ? /*#__PURE__*/React.createElement(Header, {
table: table,
testPrefix: testPrefix
}) : null;
},
cell: function cell(_ref5) {
var row = _ref5.row;
return /*#__PURE__*/React.createElement(Cell, {
row: row,
singleRowSelection: singleRowSelection,
testPrefix: testPrefix
});
},
enableColumnFilter: false,
enableSorting: false,
size: width,
maxSize: width,
minSize: width,
notFlex: true,
tableMeta: tableMeta
} : null;
}, [enabled, testPrefix, tableMeta, singleRowSelection]);
});