diff --git a/web/src/components/About.jsx b/web/src/components/About.jsx
index 58cae8a..9f579e6 100644
--- a/web/src/components/About.jsx
+++ b/web/src/components/About.jsx
@@ -9,11 +9,13 @@ import InfoIcon from '@material-ui/icons/Info'
import ListItem from '@material-ui/core/ListItem'
import ListItemIcon from '@material-ui/core/ListItemIcon'
import ListItemText from '@material-ui/core/ListItemText'
+import { createMuiTheme, ThemeProvider } from '@material-ui/core/styles'
import { useTranslation } from 'react-i18next'
import { echoHost } from 'utils/Hosts'
export default function AboutDialog() {
const { t } = useTranslation()
+ const darkTheme = createMuiTheme({ palette: { type: 'dark', primary: { main: '#00a572' } } })
const [open, setOpen] = useState(false)
const [torrServerVersion, setTorrServerVersion] = useState('')
useEffect(() => {
@@ -29,39 +31,61 @@ export default function AboutDialog() {
-
+
)
}
diff --git a/web/src/components/App/index.jsx b/web/src/components/App/index.jsx
index e212c60..f7d4bac 100644
--- a/web/src/components/App/index.jsx
+++ b/web/src/components/App/index.jsx
@@ -1,6 +1,7 @@
-import CssBaseline from '@material-ui/core/CssBaseline'
+import useMediaQuery from '@material-ui/core/useMediaQuery'
import { createMuiTheme, MuiThemeProvider } from '@material-ui/core'
-import { useEffect, useState } from 'react'
+import CssBaseline from '@material-ui/core/CssBaseline'
+import { useEffect, useMemo, useState } from 'react'
import Typography from '@material-ui/core/Typography'
import IconButton from '@material-ui/core/IconButton'
import { Menu as MenuIcon, Close as CloseIcon } from '@material-ui/icons'
@@ -14,15 +15,25 @@ import DonateDialog from 'components/Donate/DonateDialog'
import { AppWrapper, AppHeader } from './style'
import Sidebar from './Sidebar'
-const baseTheme = createMuiTheme({
- overrides: { MuiCssBaseline: { '@global': { html: { WebkitFontSmoothing: 'auto' } } } },
- palette: { primary: { main: '#00a572' }, secondary: { main: '#ffa724' }, tonalOffset: 0.2 },
-})
-
export default function App() {
+ const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)')
const [isDrawerOpen, setIsDrawerOpen] = useState(false)
const [isDonationDialogOpen, setIsDonationDialogOpen] = useState(false)
const [torrServerVersion, setTorrServerVersion] = useState('')
+ // https://material-ui.com/ru/customization/palette/
+ const baseTheme = useMemo(
+ () =>
+ createMuiTheme({
+ overrides: { MuiCssBaseline: { '@global': { html: { WebkitFontSmoothing: 'auto' } } } },
+ palette: {
+ type: prefersDarkMode ? 'dark' : 'light',
+ primary: { main: '#00a572' },
+ secondary: { main: '#ffa724' },
+ tonalOffset: 0.2,
+ },
+ }),
+ [prefersDarkMode],
+ )
useEffect(() => {
axios.get(echoHost()).then(({ data }) => setTorrServerVersion(data))
diff --git a/web/src/components/Donate/DonateDialog.jsx b/web/src/components/Donate/DonateDialog.jsx
index 4c5c98c..ccd2d28 100644
--- a/web/src/components/Donate/DonateDialog.jsx
+++ b/web/src/components/Donate/DonateDialog.jsx
@@ -15,7 +15,7 @@ export default function DonateDialog({ onClose }) {
const { t } = useTranslation()
return (
-
+
{t('Donate')}