Show empty library in case search doesn't match anything (#251)
* Show empty library in case search doesn't match anything In case the search didn't match anything all mangas where shown instead of an empty library. * Rename filter manga function parameter and variable Makes it easier to read
This commit is contained in:
@@ -49,29 +49,17 @@ const queryGenreFilter = (query: NullAndUndefined<string>, { genre }: IMangaCard
|
|||||||
};
|
};
|
||||||
|
|
||||||
const filterManga = (
|
const filterManga = (
|
||||||
manga: IMangaCard[],
|
mangas: IMangaCard[],
|
||||||
query: NullAndUndefined<string>,
|
query: NullAndUndefined<string>,
|
||||||
unread: NullAndUndefined<boolean>,
|
unread: NullAndUndefined<boolean>,
|
||||||
downloaded: NullAndUndefined<boolean>,
|
downloaded: NullAndUndefined<boolean>,
|
||||||
): IMangaCard[] => {
|
): IMangaCard[] =>
|
||||||
let filteredManga: IMangaCard[] = [];
|
mangas.filter(
|
||||||
if (query) {
|
(manga) =>
|
||||||
const titleFilteredManga = manga.filter((m) => queryFilter(query, m));
|
(queryFilter(query, manga) || queryGenreFilter(query, manga)) &&
|
||||||
const genreFilteredManga = manga.filter((m) => queryGenreFilter(query, m));
|
downloadedFilter(downloaded, manga) &&
|
||||||
const unique = titleFilteredManga.concat(genreFilteredManga).reduce((acc: Record<number, IMangaCard>, obj) => {
|
unreadFilter(unread, manga),
|
||||||
const { id } = obj;
|
|
||||||
if (!acc[id]) {
|
|
||||||
acc[id] = obj;
|
|
||||||
}
|
|
||||||
return acc;
|
|
||||||
}, {});
|
|
||||||
filteredManga = Object.values(unique);
|
|
||||||
}
|
|
||||||
filteredManga = (filteredManga.length ? filteredManga : manga).filter(
|
|
||||||
(m) => downloadedFilter(downloaded, m) && unreadFilter(unread, m),
|
|
||||||
);
|
);
|
||||||
return filteredManga;
|
|
||||||
};
|
|
||||||
|
|
||||||
const sortByUnread = (a: IMangaCard, b: IMangaCard): number =>
|
const sortByUnread = (a: IMangaCard, b: IMangaCard): number =>
|
||||||
// eslint-disable-next-line implicit-arrow-linebreak
|
// eslint-disable-next-line implicit-arrow-linebreak
|
||||||
|
|||||||
Reference in New Issue
Block a user