/* * Copyright (C) Contributors to the Suwayomi project * * This Source Code Form is subject to the terms of the Mozilla Public * 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/. */ import React, { useState } from 'react'; import { BrowserRouter as Router, Switch, Route, Redirect, } from 'react-router-dom'; import { Container } from '@material-ui/core'; import CssBaseline from '@material-ui/core/CssBaseline'; import { createMuiTheme, ThemeProvider } from '@material-ui/core/styles'; import NavBar from 'components/navbar/NavBar'; import NavbarContext from 'context/NavbarContext'; import DarkTheme from 'context/DarkTheme'; import useLocalStorage from 'util/useLocalStorage'; import MangaSources from 'screens/manga/MangaSources'; import AnimeSources from 'screens/anime/AnimeSources'; import Settings from 'screens/Settings'; import About from 'screens/settings/About'; import Categories from 'screens/settings/Categories'; import Backup from 'screens/settings/Backup'; import Library from 'screens/manga/Library'; import SearchSingle from 'screens/manga/SearchSingle'; import Manga from 'screens/manga/Manga'; import Anime from 'screens/anime/Anime'; import MangaExtensions from 'screens/manga/MangaExtensions'; import SourceMangas from 'screens/manga/SourceMangas'; import SourceAnimes from 'screens/anime/SourceAnimes'; import Reader from 'screens/manga/Reader'; import Player from 'screens/anime/Player'; import AnimeExtensions from 'screens/anime/AnimeExtensions'; export default function App() { const [title, setTitle] = useState('Tachidesk'); const [action, setAction] = useState(
); const [override, setOverride] = useState({ status: false, value:
}); const [darkTheme, setDarkTheme] = useLocalStorage('darkTheme', true); const navBarContext = { title, setTitle, action, setAction, override, setOverride, }; const darkThemeContext = { darkTheme, setDarkTheme }; const theme = React.useMemo( () => createMuiTheme({ palette: { type: darkTheme ? 'dark' : 'light', }, overrides: { MuiCssBaseline: { '@global': { '*::-webkit-scrollbar': { width: '10px', background: darkTheme ? '#222' : '#e1e1e1', }, '*::-webkit-scrollbar-thumb': { background: darkTheme ? '#111' : '#aaa', borderRadius: '5px', }, }, }, }, }), [darkTheme], ); return ( {/* general routes */} ( )} /> {/* Manga Routes */} <> {/* Anime Routes */} } /> ); }