mirror of
https://github.com/Readarr/Readarr.git
synced 2026-03-28 18:05:51 -04:00
* New: Release Profiles - UI Updates * New: Release Profiles - API Changes * New: Release Profiles - Test Updates * New: Release Profiles - Backend Updates * New: Interactive Artist Search * New: Change Montiored on Album Details Page * New: Show Duration on Album Details Page * Fixed: Manual Import not working if no albums are Missing * Fixed: Sort search input by sortTitle * Fixed: Queue columnLabel throwing JS error
31 lines
671 B
JavaScript
31 lines
671 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 (selected == null) {
|
|
delete selectedState[id];
|
|
}
|
|
|
|
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;
|