Fixed: range selection in search (Prowlarr/Prowlarr#2306)

This commit is contained in:
Matheus Roberson 2026-02-27 18:53:42 -03:00
parent 407acb6844
commit 280cc4c14c
3 changed files with 6 additions and 5 deletions

View file

@ -239,7 +239,7 @@ class SearchIndex extends Component {
onSelectedChange = ({ id, value, shiftKey = false }) => {
this.setState((state) => {
return toggleSelected(state, this.props.items, id, value, shiftKey);
return toggleSelected(state, this.props.items, id, value, shiftKey, 'guid');
});
};

View file

@ -1,8 +1,9 @@
import _ from 'lodash';
function getToggledRange(items, id, lastToggled) {
const lastToggledIndex = _.findIndex(items, { id: lastToggled });
const changedIndex = _.findIndex(items, { id });
function getToggledRange(items, id, lastToggled, idProp = 'id') {
const lastToggledIndex = _.findIndex(items, { [idProp]: lastToggled });
const changedIndex = _.findIndex(items, { [idProp]: id });
let lower = 0;
let upper = 0;

View file

@ -13,7 +13,7 @@ function toggleSelected(selectedState, items, id, selected, shiftKey, idProp = '
}
if (shiftKey && lastToggled) {
const { lower, upper } = getToggledRange(items, id, lastToggled);
const { lower, upper } = getToggledRange(items, id, lastToggled, idProp);
for (let i = lower; i < upper; i++) {
nextSelectedState[items[i][idProp]] = selected;