diff --git a/src/renderer/src/components/Tab/TabContainer.tsx b/src/renderer/src/components/Tab/TabContainer.tsx index 35c80fc5e6..81ebad43ec 100644 --- a/src/renderer/src/components/Tab/TabContainer.tsx +++ b/src/renderer/src/components/Tab/TabContainer.tsx @@ -3,19 +3,21 @@ import { isLinux, isMac, isWin } from '@renderer/config/constant' import { useTheme } from '@renderer/context/ThemeProvider' import { useFullscreen } from '@renderer/hooks/useFullscreen' import { useMinappPopup } from '@renderer/hooks/useMinappPopup' -import { getTitleLabel } from '@renderer/i18n/label' +import { getThemeModeLabel, getTitleLabel } from '@renderer/i18n/label' import tabsService from '@renderer/services/TabsService' import { useAppDispatch, useAppSelector } from '@renderer/store' import type { Tab } from '@renderer/store/tabs' import { addTab, removeTab, setActiveTab } from '@renderer/store/tabs' import { ThemeMode } from '@renderer/types' import { classNames } from '@renderer/utils' +import { Tooltip } from 'antd' import { FileSearch, Folder, Home, Languages, LayoutGrid, + Monitor, Moon, Palette, Settings, @@ -25,6 +27,7 @@ import { X } from 'lucide-react' import { useCallback, useEffect } from 'react' +import { useTranslation } from 'react-i18next' import { useLocation, useNavigate } from 'react-router-dom' import styled from 'styled-components' @@ -69,8 +72,9 @@ const TabsContainer: React.FC = ({ children }) => { const tabs = useAppSelector((state) => state.tabs.tabs) const activeTabId = useAppSelector((state) => state.tabs.activeTabId) const isFullscreen = useFullscreen() - const { theme, setTheme } = useTheme() + const { settedTheme, toggleTheme } = useTheme() const { hideMinappPopup } = useMinappPopup() + const { t } = useTranslation() const getTabId = (path: string): string => { if (path === '/') return 'home' @@ -162,9 +166,20 @@ const TabsContainer: React.FC = ({ children }) => { - setTheme(theme === ThemeMode.dark ? ThemeMode.light : ThemeMode.dark)}> - {theme === ThemeMode.dark ? : } - + + + {settedTheme === ThemeMode.dark ? ( + + ) : settedTheme === ThemeMode.light ? ( + + ) : ( + + )} + + diff --git a/src/renderer/src/components/app/Sidebar.tsx b/src/renderer/src/components/app/Sidebar.tsx index 5325b0a4b4..eb67cf16f9 100644 --- a/src/renderer/src/components/app/Sidebar.tsx +++ b/src/renderer/src/components/app/Sidebar.tsx @@ -21,6 +21,7 @@ import { Languages, LayoutGrid, MessageSquare, + Monitor, Moon, Palette, Settings, @@ -44,7 +45,7 @@ const Sidebar: FC = () => { const { pathname } = useLocation() const navigate = useNavigate() - const { theme, setTheme } = useTheme() + const { theme, settedTheme, toggleTheme } = useTheme() const avatar = useAvatar() const { t } = useTranslation() @@ -105,11 +106,17 @@ const Sidebar: FC = () => { - setTheme(theme === ThemeMode.dark ? ThemeMode.light : ThemeMode.dark)}> - {theme === ThemeMode.dark ? : } + + {settedTheme === ThemeMode.dark ? ( + + ) : settedTheme === ThemeMode.light ? ( + + ) : ( + + )} diff --git a/src/renderer/src/pages/settings/DisplaySettings/DisplaySettings.tsx b/src/renderer/src/pages/settings/DisplaySettings/DisplaySettings.tsx index 0f444ed292..c0d7e3fbb0 100644 --- a/src/renderer/src/pages/settings/DisplaySettings/DisplaySettings.tsx +++ b/src/renderer/src/pages/settings/DisplaySettings/DisplaySettings.tsx @@ -1,4 +1,3 @@ -import { SyncOutlined } from '@ant-design/icons' import CodeEditor from '@renderer/components/CodeEditor' import { HStack } from '@renderer/components/Layout' import TextBadge from '@renderer/components/TextBadge' @@ -19,7 +18,7 @@ import { } from '@renderer/store/settings' import { ThemeMode } from '@renderer/types' import { Button, ColorPicker, Segmented, Switch } from 'antd' -import { Minus, Plus, RotateCcw } from 'lucide-react' +import { Minus, Monitor, Moon, Plus, RotateCcw, Sun } from 'lucide-react' import { FC, useCallback, useEffect, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import styled from 'styled-components' @@ -108,7 +107,7 @@ const DisplaySettings: FC = () => { value: ThemeMode.light, label: (
- + {t('settings.theme.light')}
) @@ -117,7 +116,7 @@ const DisplaySettings: FC = () => { value: ThemeMode.dark, label: (
- + {t('settings.theme.dark')}
) @@ -126,7 +125,7 @@ const DisplaySettings: FC = () => { value: ThemeMode.system, label: (
- + {t('settings.theme.system')}
)