mirror of
https://github.com/Readarr/Readarr.git
synced 2026-03-30 18:24:45 -04:00
27 lines
610 B
JavaScript
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;
|