linkmore-design
Version:
🌈 🚀lm组件库。🚀
64 lines (61 loc) • 2.09 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _PictureTextColumn = _interopRequireDefault(require("../card/PictureTextColumn"));
var _PictureTextRow = _interopRequireDefault(require("../card/PictureTextRow"));
var _PictureTextRowOperate = _interopRequireDefault(require("../card/PictureTextRowOperate"));
const LmCardTableBodyCell = ({
index,
cell,
table
}) => {
const {
state,
type,
components,
cellKey
} = table;
const {
checkboxConfig: {
checkKeys
},
radioConfig
} = state;
// 渲染的单元格
const RenderCell = (0, _react.useMemo)(() => {
const types = {
'PTC': _PictureTextColumn.default,
'PTR': _PictureTextRow.default,
'PTRO': _PictureTextRowOperate.default
};
return components.Cell || types[type] || _PictureTextColumn.default;
}, [components.Cell, type]);
// 是否选中
const isCheckboxChecked = (0, _react.useMemo)(() => {
return checkKeys.some(v => v === cell[cellKey]);
}, [checkKeys, cellKey]);
const isRadioChecked = (0, _react.useMemo)(() => {
return radioConfig.checkKey === cell[cellKey];
}, [cellKey, radioConfig.checkKey]);
const stateConfig = {
checked: isCheckboxChecked
};
return /*#__PURE__*/_react.default.createElement("div", {
className: (0, _classnames.default)('lm_card_table_body_cell', {
'cell_checked': isCheckboxChecked || isRadioChecked
})
}, /*#__PURE__*/_react.default.createElement(RenderCell, (0, _extends2.default)({
index: index,
cell: cell,
table: table
}, stateConfig)));
};
var _default = LmCardTableBodyCell;
exports.default = _default;