UNPKG

ssc-grid

Version:

React grid component for SSC 3.0

68 lines (57 loc) 1.85 kB
'use strict'; exports.__esModule = true; exports.updateRowSelectedState = updateRowSelectedState; exports.updateAllRowsSelectedState = updateAllRowsSelectedState; exports.updateTableHeadRowSelectedState = updateTableHeadRowSelectedState; var _immutabilityHelper = require('immutability-helper'); var _immutabilityHelper2 = _interopRequireDefault(_immutabilityHelper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Update selected status of given row * * @export * @param {number} rowIdx index of given row * @param {boolean} isSelected selected status */ function updateRowSelectedState(rowIdx, isSelected) { return function (prevState /* , props */) { var _selectedRowsObj; return (0, _immutabilityHelper2['default'])(prevState, { selectedRowsObj: (_selectedRowsObj = {}, _selectedRowsObj[rowIdx] = { selected: { $set: isSelected } }, _selectedRowsObj) }); }; } /** * 批量更新所有行的选中状态 */ /** * 模拟redux dispatch去更新state * https://medium.com/@wereHamster/beware-react-setstate-is-asynchronous-ce87ef1a9cf3#.52vhwpymp */ function updateAllRowsSelectedState(isSelected) { return function (prevState /* , props */) { var selectedRowsObj = {}; prevState.viewedTableData.forEach(function (item, index) { selectedRowsObj[index] = { selected: isSelected }; }); return (0, _immutabilityHelper2['default'])(prevState, { selectedRowsObj: { $set: selectedRowsObj } }); }; } /** * 更新表头被选中的状态 */ function updateTableHeadRowSelectedState(isSelected) { return function (prevState /* , props */) { return (0, _immutabilityHelper2['default'])(prevState, { isHeadRowSelected: { $set: isSelected } }); }; }