@vtex/styleguide
Version:
> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))
82 lines (67 loc) • 2.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DENSITY_OPTIONS = exports.DesitySizes = exports.Density = exports.TABLE_HEADER_HEIGHT = undefined;
exports.default = useTableMeasures;
exports.calculateTableHeight = calculateTableHeight;
exports.getRowHeight = getRowHeight;
var _react = require("react");
var EMPTY_STATE_SIZE_IN_ROWS = 5;
var TABLE_HEADER_HEIGHT = exports.TABLE_HEADER_HEIGHT = 36;
function useTableMeasures(_ref) {
var _ref$size = _ref.size,
size = _ref$size === void 0 ? 0 : _ref$size,
_ref$density = _ref.density,
initDensity = _ref$density === void 0 ? Density.Regular : _ref$density,
_ref$headless = _ref.headless,
headless = _ref$headless === void 0 ? false : _ref$headless;
var _useState = (0, _react.useState)(initDensity),
density = _useState[0],
setDensity = _useState[1];
var rowHeight = (0, _react.useMemo)(function () {
return getRowHeight(density);
}, [density]);
var tableHeight = (0, _react.useMemo)(function () {
return calculateTableHeight(rowHeight, size, headless) + size;
}, [headless, rowHeight, size]);
var bodyHeight = (0, _react.useMemo)(function () {
return calculateTableHeight(rowHeight, size, true);
}, [rowHeight, size]);
return (0, _react.useMemo)(function () {
return {
density: density,
rowHeight: rowHeight,
tableHeight: tableHeight,
bodyHeight: bodyHeight,
setDensity: setDensity
};
}, [bodyHeight, density, rowHeight, tableHeight]);
}
function calculateTableHeight(rowHeight, tableSize, headless) {
var multiplicator = tableSize !== 0 ? tableSize : EMPTY_STATE_SIZE_IN_ROWS;
return (headless ? 0 : TABLE_HEADER_HEIGHT) + rowHeight * multiplicator;
}
var Density = exports.Density = undefined;
(function (Density) {
Density["Compact"] = "compact";
Density["Regular"] = "regular";
Density["Comfortable"] = "comfortable";
})(Density || (exports.Density = Density = {}));
var DesitySizes = exports.DesitySizes = undefined;
(function (DesitySizes) {
DesitySizes[DesitySizes["Compact"] = 32] = "Compact";
DesitySizes[DesitySizes["Regular"] = 48] = "Regular";
DesitySizes[DesitySizes["Comfortable"] = 76] = "Comfortable";
})(DesitySizes || (exports.DesitySizes = DesitySizes = {}));
var DENSITY_OPTIONS = exports.DENSITY_OPTIONS = [Density.Compact, Density.Regular, Density.Comfortable];
function getRowHeight(density) {
switch (density) {
case Density.Compact:
return DesitySizes.Compact;
case Density.Regular:
return DesitySizes.Regular;
case Density.Comfortable:
return DesitySizes.Comfortable;
}
}