@ntragas/pouncejstest
Version:
A collection of UI components from Panther labs
75 lines (58 loc) • 2.14 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = 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 _Table = require("./Table");
var TableRow = /*#__PURE__*/_react.default.forwardRef(function TableRow(_ref, ref) {
var _ref$selected = _ref.selected,
selected = _ref$selected === void 0 ? false : _ref$selected,
rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["selected"]);
var tableProps = (0, _Table.useTable)();
var rowStyles = _react.default.useMemo(function () {
var styles = {};
if (tableProps.rowSeparationStrategy === 'background') {
styles = (0, _extends2.default)({}, styles, {
'tbody > &:nth-of-type(odd)': {
backgroundColor: !selected ? 'navyblue-500' : undefined
}
});
}
if (tableProps.rowSeparationStrategy === 'border') {
styles = (0, _extends2.default)({}, styles, {
borderBottom: '1px solid',
borderColor: 'navyblue-300'
});
}
if (tableProps.hoverable) {
styles = (0, _extends2.default)({}, styles, {
transition: 'all 0.05s linear',
_hover: {
backgroundColor: 'navyblue-500'
}
});
}
if (selected) {
styles = (0, _extends2.default)({}, styles, {
backgroundColor: 'navyblue-600',
borderColor: 'navyblue-600',
_hover: {
backgroundColor: 'navyblue-600',
borderColor: 'navyblue-600'
}
});
}
return styles;
}, [tableProps, selected]);
return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
as: "tr",
role: "row",
ref: ref,
sx: rowStyles
}, rest));
});
var _default = /*#__PURE__*/_react.default.memo(TableRow);
exports.default = _default;