2021-03-26 04:17:02 +04:30
|
|
|
/*
|
|
|
|
|
* Copyright (C) Contributors to the Suwayomi project
|
|
|
|
|
*
|
|
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
2021-01-26 23:32:12 +03:30
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
|
|
2021-11-15 19:33:48 +03:30
|
|
|
import { Container } from '@mui/material';
|
2021-09-09 17:51:22 +04:30
|
|
|
import CssBaseline from '@mui/material/CssBaseline';
|
2022-11-26 13:51:56 +01:00
|
|
|
import AppContext from 'components/context/AppContext';
|
2021-10-30 16:10:34 +03:30
|
|
|
import DefaultNavBar from 'components/navbar/DefaultNavBar';
|
2022-11-26 13:51:56 +01:00
|
|
|
import React from 'react';
|
2023-02-06 10:06:33 +01:00
|
|
|
import { Redirect, Route, Switch } from 'react-router-dom';
|
2022-11-26 13:51:56 +01:00
|
|
|
import Browse from 'screens/Browse';
|
|
|
|
|
import DownloadQueue from 'screens/DownloadQueue';
|
|
|
|
|
import Extensions from 'screens/Extensions';
|
|
|
|
|
import Library from 'screens/Library';
|
|
|
|
|
import Manga from 'screens/Manga';
|
|
|
|
|
import Reader from 'screens/Reader';
|
|
|
|
|
import SearchAll from 'screens/SearchAll';
|
2021-05-27 05:13:01 +04:30
|
|
|
import Settings from 'screens/Settings';
|
|
|
|
|
import About from 'screens/settings/About';
|
|
|
|
|
import Backup from 'screens/settings/Backup';
|
2022-11-26 13:51:56 +01:00
|
|
|
import Categories from 'screens/settings/Categories';
|
2023-01-06 17:34:16 +01:00
|
|
|
import DefaultReaderSettings from 'screens/settings/DefaultReaderSettings';
|
2021-10-30 16:16:36 +03:30
|
|
|
import SourceConfigure from 'screens/SourceConfigure';
|
|
|
|
|
import SourceMangas from 'screens/SourceMangas';
|
2021-10-30 16:34:09 +03:30
|
|
|
import Sources from 'screens/Sources';
|
2022-11-26 13:51:56 +01:00
|
|
|
import Updates from 'screens/Updates';
|
2023-02-13 20:20:08 +03:30
|
|
|
import 'i18n';
|
2023-04-22 13:03:51 +02:00
|
|
|
import LibrarySettings from 'screens/settings/LibrarySettings';
|
2021-09-09 17:51:22 +04:30
|
|
|
|
2022-11-26 13:51:56 +01:00
|
|
|
const App: React.FC = () => (
|
|
|
|
|
<AppContext>
|
|
|
|
|
<CssBaseline />
|
|
|
|
|
<DefaultNavBar />
|
|
|
|
|
<Container
|
|
|
|
|
id="appMainContainer"
|
|
|
|
|
maxWidth={false}
|
|
|
|
|
disableGutters
|
|
|
|
|
sx={{
|
|
|
|
|
mt: 8,
|
|
|
|
|
ml: { sm: 8 },
|
|
|
|
|
mb: { xs: 8, sm: 0 },
|
|
|
|
|
width: 'auto',
|
|
|
|
|
overflow: 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<Switch>
|
|
|
|
|
{/* General Routes */}
|
2023-02-06 10:06:33 +01:00
|
|
|
<Route exact path="/" render={() => <Redirect to="/library" />} />
|
2022-11-26 13:51:56 +01:00
|
|
|
<Route path="/settings/about">
|
|
|
|
|
<About />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/settings/categories">
|
|
|
|
|
<Categories />
|
|
|
|
|
</Route>
|
2023-01-06 17:34:16 +01:00
|
|
|
<Route path="/settings/defaultReaderSettings">
|
|
|
|
|
<DefaultReaderSettings />
|
|
|
|
|
</Route>
|
2023-04-22 13:03:51 +02:00
|
|
|
<Route path="/settings/librarySettings">
|
|
|
|
|
<LibrarySettings />
|
|
|
|
|
</Route>
|
2022-11-26 13:51:56 +01:00
|
|
|
<Route path="/settings/backup">
|
|
|
|
|
<Backup />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/settings">
|
|
|
|
|
<Settings />
|
|
|
|
|
</Route>
|
2021-03-18 21:46:24 +03:30
|
|
|
|
2022-11-26 13:51:56 +01:00
|
|
|
{/* Manga Routes */}
|
2021-01-23 01:20:16 +03:30
|
|
|
|
2022-11-26 13:51:56 +01:00
|
|
|
<Route path="/sources/:sourceId/popular/">
|
|
|
|
|
<SourceMangas popular />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/sources/:sourceId/latest/">
|
|
|
|
|
<SourceMangas popular={false} />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/sources/:sourceId/configure/">
|
|
|
|
|
<SourceConfigure />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/sources/all/search/">
|
|
|
|
|
<SearchAll />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/downloads">
|
|
|
|
|
<DownloadQueue />
|
|
|
|
|
</Route>
|
2023-03-11 18:05:58 +01:00
|
|
|
<Route path="/manga/:mangaId/chapter/:chapterNum" />
|
2022-11-26 13:51:56 +01:00
|
|
|
<Route path="/manga/:id">
|
|
|
|
|
<Manga />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/library">
|
|
|
|
|
<Library />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/updates">
|
|
|
|
|
<Updates />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/sources">
|
|
|
|
|
<Sources />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/extensions">
|
|
|
|
|
<Extensions />
|
|
|
|
|
</Route>
|
|
|
|
|
<Route path="/browse">
|
|
|
|
|
<Browse />
|
|
|
|
|
</Route>
|
|
|
|
|
</Switch>
|
|
|
|
|
</Container>
|
|
|
|
|
<Switch>
|
|
|
|
|
<Route
|
|
|
|
|
path="/manga/:mangaId/chapter/:chapterIndex"
|
|
|
|
|
// passing a key re-mounts the reader
|
|
|
|
|
// when changing chapters
|
2023-02-06 10:06:33 +01:00
|
|
|
render={(props: any) => <Reader key={props.match.params.chapterIndex} />}
|
2022-11-26 13:51:56 +01:00
|
|
|
/>
|
|
|
|
|
</Switch>
|
|
|
|
|
</AppContext>
|
|
|
|
|
);
|
2022-11-02 10:42:02 +01:00
|
|
|
|
2022-11-26 13:51:56 +01:00
|
|
|
export default App;
|