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 {
|
interface BaseMedia {
|
||||||
|
id: number;
|
||||||
mediaType: string;
|
mediaType: string;
|
||||||
mediaInfo?: {
|
mediaInfo?: {
|
||||||
status: MediaStatus;
|
status: MediaStatus;
|
||||||
@@ -82,6 +83,8 @@ const useDiscover = <
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const resultIds: Set<number> = new Set<number>();
|
||||||
|
|
||||||
const isLoadingInitialData = !data && !error;
|
const isLoadingInitialData = !data && !error;
|
||||||
const isLoadingMore =
|
const isLoadingMore =
|
||||||
isLoadingInitialData ||
|
isLoadingInitialData ||
|
||||||
@@ -94,7 +97,18 @@ const useDiscover = <
|
|||||||
setSize(size + 1);
|
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) {
|
if (settings.currentSettings.hideAvailable && hideAvailable) {
|
||||||
titles = titles.filter(
|
titles = titles.filter(
|
||||||
|
|||||||
Reference in New Issue
Block a user