ssc-grid
Version:
React grid component for SSC 3.0
57 lines (50 loc) • 1.35 kB
JavaScript
/**
* 模拟redux dispatch去更新state
* https://medium.com/@wereHamster/beware-react-setstate-is-asynchronous-ce87ef1a9cf3#.52vhwpymp
*/
import update from 'immutability-helper';
/**
* Update selected status of given row
*
* @export
* @param {number} rowIdx index of given row
* @param {boolean} isSelected selected status
*/
export function updateRowSelectedState(rowIdx, isSelected) {
return function (prevState /* , props */) {
var _selectedRowsObj;
return update(prevState, {
selectedRowsObj: (_selectedRowsObj = {}, _selectedRowsObj[rowIdx] = {
selected: { $set: isSelected }
}, _selectedRowsObj)
});
};
}
/**
* 批量更新所有行的选中状态
*/
export function updateAllRowsSelectedState(isSelected) {
return function (prevState /* , props */) {
var selectedRowsObj = {};
prevState.viewedTableData.forEach(function (item, index) {
selectedRowsObj[index] = {
selected: isSelected
};
});
return update(prevState, {
selectedRowsObj: {
$set: selectedRowsObj
}
});
};
}
/**
* 更新表头被选中的状态
*/
export function updateTableHeadRowSelectedState(isSelected) {
return function (prevState /* , props */) {
return update(prevState, {
isHeadRowSelected: { $set: isSelected }
});
};
}