linkmore-design
Version:
🌈 🚀lm组件库。🚀
50 lines (48 loc) • 1.53 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import React, { useMemo } from 'react';
import cn from 'classnames';
import PTC from "../card/PictureTextColumn";
import PTR from "../card/PictureTextRow";
import PTRO from "../card/PictureTextRowOperate";
var LmCardTableBodyCell = function LmCardTableBodyCell(_ref) {
var index = _ref.index,
cell = _ref.cell,
table = _ref.table;
var state = table.state,
type = table.type,
components = table.components,
cellKey = table.cellKey;
var checkKeys = state.checkboxConfig.checkKeys,
radioConfig = state.radioConfig;
// 渲染的单元格
var RenderCell = useMemo(function () {
var types = {
'PTC': PTC,
'PTR': PTR,
'PTRO': PTRO
};
return components.Cell || types[type] || PTC;
}, [components.Cell, type]);
// 是否选中
var isCheckboxChecked = useMemo(function () {
return checkKeys.some(function (v) {
return v === cell[cellKey];
});
}, [checkKeys, cellKey]);
var isRadioChecked = useMemo(function () {
return radioConfig.checkKey === cell[cellKey];
}, [cellKey, radioConfig.checkKey]);
var stateConfig = {
checked: isCheckboxChecked
};
return /*#__PURE__*/React.createElement("div", {
className: cn('lm_card_table_body_cell', {
'cell_checked': isCheckboxChecked || isRadioChecked
})
}, /*#__PURE__*/React.createElement(RenderCell, _extends({
index: index,
cell: cell,
table: table
}, stateConfig)));
};
export default LmCardTableBodyCell;