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)} /> + + + ); +};