wix-style-react
Version:
58 lines (53 loc) • 3.13 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["titleBarVisible", "dataHook"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
import React from 'react';
import PropTypes from 'prop-types';
import defaultTo from 'lodash/defaultTo';
import DataTable from '../DataTable';
import { getDataTableProps, createColumns } from '../Table';
import { TableContext } from '../TableContext';
import { st, classes } from '../Table.st.css';
import { BulkSelectionConsumer } from '../BulkSelection';
export var TableContent = function TableContent(_ref) {
var titleBarVisible = _ref.titleBarVisible,
dataHook = _ref.dataHook,
rest = _objectWithoutProperties(_ref, _excluded);
// TODO: figure out if we need to put result of createColumns() on state, in order to avoid
// redundant renders.
return /*#__PURE__*/React.createElement(TableContext.Consumer, null, function (tableProps) {
var dataTableProps = _objectSpread(_objectSpread({}, getDataTableProps(tableProps)), {}, {
dataHook: tableProps.withWrapper ? 'table-content' : dataHook,
hideHeader: !titleBarVisible
});
return /*#__PURE__*/React.createElement("div", {
className: st(classes.content, {
titleBarVisible: titleBarVisible
})
}, tableProps.showSelection ? /*#__PURE__*/React.createElement(BulkSelectionConsumer, {
consumerCompName: "Table.Content",
providerCompName: "Table"
}, function (bulkSelectionContext) {
return /*#__PURE__*/React.createElement(DataTable, _extends({}, dataTableProps, {
isRowSelected: function isRowSelected(rowData, rowIndex) {
return bulkSelectionContext.isSelected(defaultTo(rowData.id, rowIndex));
},
columns: createColumns({
tableProps: tableProps,
bulkSelectionContext: bulkSelectionContext
})
}));
}) : /*#__PURE__*/React.createElement(DataTable, dataTableProps));
});
};
TableContent.displayName = 'Table.Content';
TableContent.propTypes = {
titleBarVisible: PropTypes.bool,
dataHook: PropTypes.string
};
TableContent.defaultProps = {
titleBarVisible: true
};