@ntragas/pouncejstest
Version:
A collection of UI components from Panther labs
58 lines (44 loc) • 2.05 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = exports.useTable = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = _interopRequireDefault(require("react"));
var _Box = _interopRequireDefault(require("../Box"));
var TableContext = /*#__PURE__*/_react.default.createContext({});
var useTable = function useTable() {
return _react.default.useContext(TableContext);
};
exports.useTable = useTable;
var Table = /*#__PURE__*/_react.default.forwardRef(function Table(_ref, ref) {
var _ref$layout = _ref.layout,
layout = _ref$layout === void 0 ? 'auto' : _ref$layout,
_ref$size = _ref.size,
size = _ref$size === void 0 ? 'medium' : _ref$size,
_ref$stickyHeader = _ref.stickyHeader,
stickyHeader = _ref$stickyHeader === void 0 ? false : _ref$stickyHeader,
_ref$hoverable = _ref.hoverable,
hoverable = _ref$hoverable === void 0 ? false : _ref$hoverable,
_ref$rowSeparationStr = _ref.rowSeparationStrategy,
rowSeparationStrategy = _ref$rowSeparationStr === void 0 ? 'background' : _ref$rowSeparationStr,
rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["layout", "size", "stickyHeader", "hoverable", "rowSeparationStrategy"]);
var contextValue = _react.default.useMemo(function () {
return {
size,
hoverable,
rowSeparationStrategy,
stickyHeader
};
}, [size, rowSeparationStrategy, hoverable, stickyHeader]);
return /*#__PURE__*/_react.default.createElement(TableContext.Provider, {
value: contextValue
}, /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
as: "table",
tableLayout: layout,
ref: ref,
width: 1
}, rest)));
});
var _default = /*#__PURE__*/_react.default.memo(Table);
exports.default = _default;