From baa2f680f7a4a5b595ccc1a93b344f14ae7a1cf5 Mon Sep 17 00:00:00 2001 From: Daniel <50052685+schroda@users.noreply.github.com> Date: Wed, 8 Feb 2023 18:37:39 +0100 Subject: [PATCH] add chapter dropdown to reader nav bar (#229) * Add chapter dropdown to reader chapter nav buttons Makes it possible to select a specific chapter inside the reader without having to leave and open the manga page * Always show chapter nav buttons In case they are unusable, they will be disabled --- src/components/navbar/ReaderNavBar.tsx | 97 ++++++++++++++++---------- 1 file changed, 61 insertions(+), 36 deletions(-) diff --git a/src/components/navbar/ReaderNavBar.tsx b/src/components/navbar/ReaderNavBar.tsx index dbd7eb98..4dcf9408 100644 --- a/src/components/navbar/ReaderNavBar.tsx +++ b/src/components/navbar/ReaderNavBar.tsx @@ -13,7 +13,7 @@ import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp'; import React, { useEffect, useState } from 'react'; import Typography from '@mui/material/Typography'; -import { useHistory, Link, useLocation } from 'react-router-dom'; +import { useHistory, useLocation } from 'react-router-dom'; import Slide from '@mui/material/Slide'; import Fade from '@mui/material/Fade'; import Zoom from '@mui/material/Zoom'; @@ -22,7 +22,6 @@ import ListItem from '@mui/material/ListItem'; import ListItemText from '@mui/material/ListItemText'; import ListItemSecondaryAction from '@mui/material/ListItemSecondaryAction'; import Collapse from '@mui/material/Collapse'; -import Button from '@mui/material/Button'; import { styled } from '@mui/system'; import useBackTo from 'util/useBackTo'; import ReaderSettingsOptions from 'components/reader/ReaderSettingsOptions'; @@ -81,20 +80,18 @@ const PageNavigation = styled('div')({ const ChapterNavigation = styled('div')({ display: 'grid', - gridTemplateColumns: '1fr 1fr', - gridTemplateAreas: '"prev next"', + gridTemplateRows: 'auto auto auto', + gridTemplateColumns: '0fr 1fr 0fr', + gridTemplateAreas: '"pre current next"', gridColumnGap: '5px', margin: '10px 0', '& a': { - flexGrow: 1, textDecoration: 'none', - - '& button': { - width: '100%', - padding: '5px 8px', - textTransform: 'none', - }, + color: 'inherit', + display: 'flex', + flexWrap: 'wrap', + alignContent: 'center', }, }); @@ -287,43 +284,71 @@ export default function ReaderNavBar(props: IProps) { {`of ${chapter.pageCount}`} - {chapter.index > 1 && ( - { + history.replace({ pathname: `/manga/${manga.id}/chapter/${chapter.index - 1}`, state: { prevDrawerOpen: drawerOpen, prevSettingsCollapseOpen: settingsCollapseOpen, }, + }); + }} + > + + + + + + = chapter.chapterCount + } + onClick={() => { + history.replace({ pathname: `/manga/${manga.id}/chapter/${chapter.index + 1}`, state: { prevDrawerOpen: drawerOpen, prevSettingsCollapseOpen: settingsCollapseOpen, }, - }} - > - - - )} + }); + }} + > + +