unified library options (#168)
* Unified the way options are being handled. now everything uses the LibraryOptionsContext, removed the no-longer used useLibraryOptions hook * removed query from library options. since it doesn't make sense for this to be cached * fixed a bug in the useLocalStorage implementation
This commit is contained in:
@@ -8,8 +8,8 @@
|
||||
|
||||
import React from 'react';
|
||||
import MangaGrid, { IMangaGridProps } from 'components/MangaGrid';
|
||||
import useLibraryOptions from 'util/useLibraryOptions';
|
||||
import { useLibraryOptionsContext } from 'components/context/LibraryOptionsContext';
|
||||
import { StringParam, useQueryParam } from 'use-query-params';
|
||||
|
||||
const FILTERED_OUT_MESSAGE = 'There are no Manga matching this filter';
|
||||
|
||||
@@ -42,7 +42,9 @@ function queryFilter(query: NullAndUndefined<string>, { title }: IMangaCard): bo
|
||||
}
|
||||
|
||||
function filterManga(mangas: IMangaCard[]): IMangaCard[] {
|
||||
const { downloaded, unread, query } = useLibraryOptions();
|
||||
const [query] = useQueryParam('query', StringParam);
|
||||
|
||||
const { options: { downloaded, unread } } = useLibraryOptionsContext();
|
||||
return mangas
|
||||
.filter((manga) => downloadedFilter(downloaded, manga)
|
||||
&& unreadFilter(unread, manga)
|
||||
@@ -64,7 +66,7 @@ function toSortID(a: IMangaCard, b: IMangaCard): number {
|
||||
}
|
||||
|
||||
function sortManga(mangas: IMangaCard[]): IMangaCard[] {
|
||||
const { sorts, sortDesc } = useLibraryOptions();
|
||||
const { options: { sorts, sortDesc } } = useLibraryOptionsContext();
|
||||
return (sorts === 'sortID' || sorts === undefined) && !sortDesc ? mangas : mangas.sort((a, b) => {
|
||||
const c = sortDesc === true ? b : a;
|
||||
const d = sortDesc === true ? a : b;
|
||||
@@ -80,8 +82,8 @@ export default function LibraryMangaGrid(props: IMangaGridProps) {
|
||||
mangas, isLoading, hasNextPage, lastPageNum, setLastPageNum, message,
|
||||
} = props;
|
||||
|
||||
const { options } = useLibraryOptionsContext();
|
||||
const { active, query } = useLibraryOptions();
|
||||
const [query] = useQueryParam('query', StringParam);
|
||||
const { options, active } = useLibraryOptionsContext();
|
||||
const filteredManga = filterManga(mangas);
|
||||
const sortedManga = sortManga(filteredManga);
|
||||
const DoneManga = sortedManga.map((ele) => {
|
||||
|
||||
Reference in New Issue
Block a user