UNPKG

@vtex/styleguide

Version:

> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))

82 lines (67 loc) 2.66 kB
"use strict"; 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; } }