UNPKG

@confi/conflux-react-ui-test-package

Version:

Modern and minimalist React UI library.

57 lines (54 loc) 5.34 kB
import _JSXStyle from "styled-jsx/style"; import React, { useMemo } from 'react'; import withDefaults from '../utils/with-defaults'; import useTheme from '../styles/use-theme'; var defaultProps = { className: '' }; var makeColgroup = function makeColgroup(width, columns) { var unsetWidthCount = columns.filter(function (c) { return !c.width; }).length; var customWidthTotal = columns.reduce(function (pre, current) { return current.width ? pre + current.width : pre; }, 0); var averageWidth = (width - customWidthTotal) / unsetWidthCount; if (averageWidth <= 0) return /*#__PURE__*/React.createElement("colgroup", null); return /*#__PURE__*/React.createElement("colgroup", null, columns.map(function (column, index) { return /*#__PURE__*/React.createElement("col", { key: "colgroup-".concat(index), width: column.width || averageWidth }); })); }; var TableHead = function TableHead(_ref) { var columns = _ref.columns, width = _ref.width; var theme = useTheme(); var isScalableWidth = useMemo(function () { return columns.find(function (item) { return !!item.width; }); }, [columns]); var colgroup = useMemo(function () { if (!isScalableWidth) return /*#__PURE__*/React.createElement("colgroup", null); return makeColgroup(width, columns); }, [isScalableWidth, width]); return /*#__PURE__*/React.createElement(React.Fragment, null, colgroup, /*#__PURE__*/React.createElement("thead", { className: _JSXStyle.dynamic([["3049369726", [theme.layout.gapHalf, theme.palette.accents_5, theme.palette.accents_1, theme.palette.border, theme.palette.border, theme.palette.border, theme.palette.border, theme.palette.border, theme.layout.radius, theme.layout.radius, theme.palette.border, theme.palette.border, theme.palette.border, theme.layout.radius, theme.layout.radius]]]) }, /*#__PURE__*/React.createElement("tr", { className: _JSXStyle.dynamic([["3049369726", [theme.layout.gapHalf, theme.palette.accents_5, theme.palette.accents_1, theme.palette.border, theme.palette.border, theme.palette.border, theme.palette.border, theme.palette.border, theme.layout.radius, theme.layout.radius, theme.palette.border, theme.palette.border, theme.palette.border, theme.layout.radius, theme.layout.radius]]]) }, columns.map(function (column, index) { return /*#__PURE__*/React.createElement("th", { key: "table-th-".concat(column.value, "-").concat(index), className: _JSXStyle.dynamic([["3049369726", [theme.layout.gapHalf, theme.palette.accents_5, theme.palette.accents_1, theme.palette.border, theme.palette.border, theme.palette.border, theme.palette.border, theme.palette.border, theme.layout.radius, theme.layout.radius, theme.palette.border, theme.palette.border, theme.palette.border, theme.layout.radius, theme.layout.radius]]]) }, /*#__PURE__*/React.createElement("div", { className: _JSXStyle.dynamic([["3049369726", [theme.layout.gapHalf, theme.palette.accents_5, theme.palette.accents_1, theme.palette.border, theme.palette.border, theme.palette.border, theme.palette.border, theme.palette.border, theme.layout.radius, theme.layout.radius, theme.palette.border, theme.palette.border, theme.palette.border, theme.layout.radius, theme.layout.radius]]]) + " " + "thead-box" }, column.label)); }))), /*#__PURE__*/React.createElement(_JSXStyle, { id: "3049369726", dynamic: [theme.layout.gapHalf, theme.palette.accents_5, theme.palette.accents_1, theme.palette.border, theme.palette.border, theme.palette.border, theme.palette.border, theme.palette.border, theme.layout.radius, theme.layout.radius, theme.palette.border, theme.palette.border, theme.palette.border, theme.layout.radius, theme.layout.radius] }, "thead.__jsx-style-dynamic-selector{border-collapse:separate;border-spacing:0;}th.__jsx-style-dynamic-selector{padding:0 ".concat(theme.layout.gapHalf, ";font-size:0.75rem;font-weight:normal;text-align:left;-webkit-letter-spacing:0;-moz-letter-spacing:0;-ms-letter-spacing:0;letter-spacing:0;vertical-align:center;min-height:2.5rem;color:").concat(theme.palette.accents_5, ";background:").concat(theme.palette.accents_1, ";border-bottom:1px solid ").concat(theme.palette.border, ";border-top:1px solid ").concat(theme.palette.border, ";border-radius:0;}th.__jsx-style-dynamic-selector:nth-child(1){border-bottom:1px solid ").concat(theme.palette.border, ";border-left:1px solid ").concat(theme.palette.border, ";border-top:1px solid ").concat(theme.palette.border, ";border-top-left-radius:").concat(theme.layout.radius, ";border-bottom-left-radius:").concat(theme.layout.radius, ";}th.__jsx-style-dynamic-selector:last-child{border-bottom:1px solid ").concat(theme.palette.border, ";border-right:1px solid ").concat(theme.palette.border, ";border-top:1px solid ").concat(theme.palette.border, ";border-top-right-radius:").concat(theme.layout.radius, ";border-bottom-right-radius:").concat(theme.layout.radius, ";}.thead-box.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-align:center;min-height:2.5rem;text-transform:uppercase;}"))); }; var MemoTableHead = React.memo(TableHead); export default withDefaults(MemoTableHead, defaultProps);