mirror of
https://github.com/sct/overseerr.git
synced 2025-12-29 09:06:08 +01:00
fix(usediscover hook): fixing duplicate movies (#708)
fixing duplicate movies that can be returned from the tmdb api
This commit is contained in:
@@ -10,6 +10,7 @@ export interface BaseSearchResult<T> {
|
||||
}
|
||||
|
||||
interface BaseMedia {
|
||||
id: number;
|
||||
mediaType: string;
|
||||
mediaInfo?: {
|
||||
status: MediaStatus;
|
||||
@@ -82,6 +83,8 @@ const useDiscover = <
|
||||
}
|
||||
);
|
||||
|
||||
const resultIds: Set<number> = new Set<number>();
|
||||
|
||||
const isLoadingInitialData = !data && !error;
|
||||
const isLoadingMore =
|
||||
isLoadingInitialData ||
|
||||
@@ -94,7 +97,18 @@ const useDiscover = <
|
||||
setSize(size + 1);
|
||||
};
|
||||
|
||||
let titles = (data ?? []).reduce((a, v) => [...a, ...v.results], [] as T[]);
|
||||
let titles = (data ?? []).reduce((a, v) => {
|
||||
const results: T[] = [];
|
||||
|
||||
for (const result of v.results) {
|
||||
if (!resultIds.has(result.id)) {
|
||||
resultIds.add(result.id);
|
||||
results.push(result);
|
||||
}
|
||||
}
|
||||
|
||||
return [...a, ...results];
|
||||
}, [] as T[]);
|
||||
|
||||
if (settings.currentSettings.hideAvailable && hideAvailable) {
|
||||
titles = titles.filter(
|
||||
|
||||
Reference in New Issue
Block a user