mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-27 04:21:27 +02:00
Refactor Indexer index to use react-window
(cherry picked from commit d022679b7dcbce3cec98e6a1fd0879e3c0d92523)
This commit is contained in:
@@ -44,7 +44,14 @@ function filter(items, state) {
|
||||
const predicate = filterPredicates[key];
|
||||
|
||||
if (Array.isArray(value)) {
|
||||
accepted = value.some((v) => predicate(item, v, type));
|
||||
if (
|
||||
type === filterTypes.NOT_CONTAINS ||
|
||||
type === filterTypes.NOT_EQUAL
|
||||
) {
|
||||
accepted = value.every((v) => predicate(item, v, type));
|
||||
} else {
|
||||
accepted = value.some((v) => predicate(item, v, type));
|
||||
}
|
||||
} else {
|
||||
accepted = predicate(item, value, type);
|
||||
}
|
||||
|
@@ -1,10 +1,10 @@
|
||||
import { createSelector } from 'reselect';
|
||||
import createIndexerSelector from './createIndexerSelector';
|
||||
|
||||
function createIndexerAppProfileSelector() {
|
||||
function createIndexerAppProfileSelector(indexerId) {
|
||||
return createSelector(
|
||||
(state) => state.settings.appProfiles.items,
|
||||
createIndexerSelector(),
|
||||
createIndexerSelector(indexerId),
|
||||
(appProfiles, indexer = {}) => {
|
||||
return appProfiles.find((profile) => {
|
||||
return profile.id === indexer.appProfileId;
|
||||
|
@@ -1,15 +1,22 @@
|
||||
import { createSelector } from 'reselect';
|
||||
|
||||
function createIndexerSelector() {
|
||||
return createSelector(
|
||||
(state, { indexerId }) => indexerId,
|
||||
(state) => state.indexers.itemMap,
|
||||
(state) => state.indexers.items,
|
||||
(indexerId, itemMap, allIndexers) => {
|
||||
if (allIndexers && itemMap && indexerId in itemMap) {
|
||||
function createIndexerSelector(id) {
|
||||
if (id == null) {
|
||||
return createSelector(
|
||||
(state, { indexerId }) => indexerId,
|
||||
(state) => state.indexers.itemMap,
|
||||
(state) => state.indexers.items,
|
||||
(indexerId, itemMap, allIndexers) => {
|
||||
return allIndexers[itemMap[indexerId]];
|
||||
}
|
||||
return undefined;
|
||||
);
|
||||
}
|
||||
|
||||
return createSelector(
|
||||
(state) => state.indexers.itemMap,
|
||||
(state) => state.indexers.items,
|
||||
(itemMap, allIndexers) => {
|
||||
return allIndexers[itemMap[id]];
|
||||
}
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user