From e909fc64fd35cdf1e8f9df40b139daef5d336023 Mon Sep 17 00:00:00 2001
From: schroda <50052685+schroda@users.noreply.github.com>
Date: Wed, 4 Sep 2024 23:44:32 +0200
Subject: [PATCH] Move "darkTheme" setting to "Appearance" page
---
public/locales/en.json | 3 +++
src/App.tsx | 2 ++
src/screens/Settings.tsx | 19 +++++--------
src/screens/settings/Appearance.tsx | 41 +++++++++++++++++++++++++++++
4 files changed, 53 insertions(+), 12 deletions(-)
create mode 100644 src/screens/settings/Appearance.tsx
diff --git a/public/locales/en.json b/public/locales/en.json
index efaa5011..dc032472 100644
--- a/public/locales/en.json
+++ b/public/locales/en.json
@@ -816,6 +816,9 @@
}
}
},
+ "appearance": {
+ "title": "Appearance"
+ },
"backup": {
"action": {
"create": {
diff --git a/src/App.tsx b/src/App.tsx
index f9fc8ff9..7e6becd6 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -46,6 +46,7 @@ const { DeviceSetting } = loadable(() => import('@/components/settings/DeviceSet
const { TrackingSettings } = loadable(() => import('@/screens/settings/TrackingSettings.tsx'), lazyLoadFallback);
const { TrackerOAuthLogin } = loadable(() => import('@/screens/TrackerOAuthLogin.tsx'), lazyLoadFallback);
const { LibraryDuplicates } = loadable(() => import('@/screens/settings/LibraryDuplicates.tsx'), lazyLoadFallback);
+const { Appearance } = loadable(() => import('@/screens/settings/Appearance.tsx'), lazyLoadFallback);
if (process.env.NODE_ENV !== 'production') {
// Adds messages only in a dev environment
@@ -115,6 +116,7 @@ const MainApp = () => {
} />
} />
} />
+ } />
{/* Manga Routes */}
diff --git a/src/screens/Settings.tsx b/src/screens/Settings.tsx
index 60f24551..2860f7e3 100644
--- a/src/screens/Settings.tsx
+++ b/src/screens/Settings.tsx
@@ -11,12 +11,10 @@ import AutoStoriesIcon from '@mui/icons-material/AutoStories';
import List from '@mui/material/List';
import ListAltIcon from '@mui/icons-material/ListAlt';
import BackupIcon from '@mui/icons-material/Backup';
-import Brightness6Icon from '@mui/icons-material/Brightness6';
import InfoIcon from '@mui/icons-material/Info';
import ListItem from '@mui/material/ListItem';
import ListItemIcon from '@mui/material/ListItemIcon';
import ListItemText from '@mui/material/ListItemText';
-import Switch from '@mui/material/Switch';
import Link from '@mui/material/Link';
import ListItemButton from '@mui/material/ListItemButton';
import MenuItem from '@mui/material/MenuItem';
@@ -31,10 +29,10 @@ import DeleteForeverIcon from '@mui/icons-material/DeleteForever';
import ExploreOutlinedIcon from '@mui/icons-material/ExploreOutlined';
import DevicesIcon from '@mui/icons-material/Devices';
import SyncIcon from '@mui/icons-material/Sync';
+import PaletteIcon from '@mui/icons-material/Palette';
import { langCodeToName } from '@/util/language';
import { useLocalStorage } from '@/util/useStorage.tsx';
import { ListItemLink } from '@/components/util/ListItemLink';
-import { DarkTheme } from '@/components/context/DarkTheme';
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
import { NumberSetting } from '@/components/settings/NumberSetting.tsx';
import { requestManager } from '@/lib/requests/RequestManager.ts';
@@ -56,8 +54,6 @@ export function Settings() {
};
}, [t]);
- const { darkTheme, setDarkTheme } = useContext(DarkTheme);
-
const DEFAULT_ITEM_WIDTH = 300;
const itemWidthIcon = useMemo(() => , []);
const [itemWidth, setItemWidth] = useLocalStorage('ItemWidth', DEFAULT_ITEM_WIDTH);
@@ -75,6 +71,12 @@ export function Settings() {
return (
+
+
+
+
+
+
@@ -111,13 +113,6 @@ export function Settings() {
-
-
-
-
-
- setDarkTheme(!darkTheme)} />
-
{
+ const { t } = useTranslation();
+ const { darkTheme, setDarkTheme } = useContext(DarkTheme);
+
+ const { setTitle, setAction } = useContext(NavBarContext);
+ useEffect(() => {
+ setTitle(t('settings.appearance.title'));
+ setAction(null);
+
+ return () => {
+ setTitle('');
+ setAction(null);
+ };
+ }, [t]);
+
+ return (
+
+
+
+ setDarkTheme(!darkTheme)} />
+
+
+ );
+};