diff --git a/src/App.tsx b/src/App.tsx index 36ae87ee..e6c52dfa 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -158,7 +158,7 @@ export default function App() { - + diff --git a/src/components/navbar/DefaultNavBar.tsx b/src/components/navbar/DefaultNavBar.tsx index e7448750..f30b0195 100644 --- a/src/components/navbar/DefaultNavBar.tsx +++ b/src/components/navbar/DefaultNavBar.tsx @@ -105,6 +105,7 @@ export default function DefaultNavBar() { { !navbarItems.some(({ path }) => path === history.location.pathname) + && !history.location.pathname.startsWith('/library') && ( (); const [tabs, setTabs] = useState(); const [tabNum, setTabNum] = useState(0); + const history = useHistory(); // a hack so MangaGrid doesn't stop working. I won't change it in case // if I do manga pagination for library.. const [lastPageNum, setLastPageNum] = useState(1); const handleTabChange = (newTab: number) => { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + history.location.search === '' + ? history.replace(`/library/${newTab}`) + : history.replace(`/library/${newTab}/${history.location.search}`); setTabNum(newTab); }; @@ -54,10 +61,17 @@ export default function Library() { mangas: [] as IManga[], isFetched: false, })); - setTabs(categoryTabs); if (categoryTabs.length > 0) { - setTabNum(categoryTabs[0].category.order); + setTabNum(() => { + if (tabParamNumber !== undefined + && !Number.isNaN(tabParamNumber) + && !!categories.find((cat) => cat.order === Number(tabParamNumber))) { + return Number(tabParamNumber); + } + history.replace('/library'); + return categoryTabs[0].category.order; + }); } }); }, []);