Files
Readarr/frontend/src/Utilities/Table/toggleSelected.js
2017-09-05 23:00:26 -04:00

27 lines
610 B
JavaScript

import areAllSelected from './areAllSelected';
import getToggledRange from './getToggledRange';
function toggleSelected(state, items, id, selected, shiftKey) {
const lastToggled = state.lastToggled;
const selectedState = {
...state.selectedState,
[id]: selected
};
if (shiftKey && lastToggled) {
const { lower, upper } = getToggledRange(items, id, lastToggled);
for (let i = lower; i < upper; i++) {
selectedState[items[i].id] = selected;
}
}
return {
...areAllSelected(selectedState),
lastToggled: id,
selectedState
};
}
export default toggleSelected;