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,
},
- }}
- >
- }>
- Next Chapter
-
-
- )}
+ });
+ }}
+ >
+
+