diff --git a/src/renderer/src/pages/notes/HeaderNavbar.tsx b/src/renderer/src/pages/notes/HeaderNavbar.tsx index a2d6e66039..92c66ba98d 100644 --- a/src/renderer/src/pages/notes/HeaderNavbar.tsx +++ b/src/renderer/src/pages/notes/HeaderNavbar.tsx @@ -1,6 +1,7 @@ import { loggerService } from '@logger' import { NavbarCenter, NavbarHeader, NavbarRight } from '@renderer/components/app/Navbar' import { HStack } from '@renderer/components/Layout' +import GeneralPopup from '@renderer/components/Popups/GeneralPopup' import { useActiveNode } from '@renderer/hooks/useNotesQuery' import { useNotesSettings } from '@renderer/hooks/useNotesSettings' import { useShowWorkspace } from '@renderer/hooks/useShowWorkspace' @@ -12,6 +13,7 @@ import { useCallback, useEffect, useRef, useState } from 'react' import styled from 'styled-components' import { menuItems } from './MenuConfig' +import NotesSettings from './NotesSettings' const logger = loggerService.withContext('HeaderNavbar') @@ -51,6 +53,16 @@ const HeaderNavbar = ({ notesTree, getCurrentNoteContent, onToggleStar, onExpand } }, [getCurrentNoteContent]) + const handleShowSettings = useCallback(() => { + GeneralPopup.show({ + title: t('notes.settings.title'), + content: , + footer: null, + width: 600, + styles: { body: { padding: 0 } } + }) + }, []) + const handleBreadcrumbClick = useCallback( (item: { treePath: string; isFolder: boolean }) => { if (item.isFolder && onExpandPath) { @@ -130,6 +142,8 @@ const HeaderNavbar = ({ notesTree, getCurrentNoteContent, onToggleStar, onExpand onClick: () => { if (item.copyAction) { handleCopyContent() + } else if (item.showSettingsPopup) { + handleShowSettings() } else if (item.action) { item.action(settings, updateSettings) } @@ -308,7 +322,7 @@ export const StarButton = styled.div` transition: all 0.2s ease-in-out; cursor: pointer; svg { - color: inherit; + color: var(--color-icon); } &:hover { diff --git a/src/renderer/src/pages/notes/MenuConfig.tsx b/src/renderer/src/pages/notes/MenuConfig.tsx index 0f8f2b0128..c157daa417 100644 --- a/src/renderer/src/pages/notes/MenuConfig.tsx +++ b/src/renderer/src/pages/notes/MenuConfig.tsx @@ -1,5 +1,5 @@ import type { NotesSettings } from '@renderer/store/note' -import { Copy, MonitorSpeaker, Type } from 'lucide-react' +import { Copy, MonitorSpeaker, Settings, Type } from 'lucide-react' import type { ReactNode } from 'react' export interface MenuItem { @@ -12,6 +12,7 @@ export interface MenuItem { isActive?: (settings: NotesSettings) => boolean component?: (settings: NotesSettings, updateSettings: (newSettings: Partial) => void) => ReactNode copyAction?: boolean + showSettingsPopup?: boolean } export const menuItems: MenuItem[] = [ @@ -86,5 +87,16 @@ export const menuItems: MenuItem[] = [ isActive: (settings) => settings.fontSize === 20 } ] + }, + { + key: 'divider-settings', + type: 'divider', + labelKey: '' + }, + { + key: 'more-settings', + labelKey: 'settings.moresetting.label', + icon: Settings, + showSettingsPopup: true } ] diff --git a/src/renderer/src/pages/settings/NotesSettings.tsx b/src/renderer/src/pages/notes/NotesSettings.tsx similarity index 98% rename from src/renderer/src/pages/settings/NotesSettings.tsx rename to src/renderer/src/pages/notes/NotesSettings.tsx index be36c0fe6e..114fd844ba 100644 --- a/src/renderer/src/pages/settings/NotesSettings.tsx +++ b/src/renderer/src/pages/notes/NotesSettings.tsx @@ -2,14 +2,6 @@ import { loggerService } from '@logger' import Selector from '@renderer/components/Selector' import { useTheme } from '@renderer/context/ThemeProvider' import { useNotesSettings } from '@renderer/hooks/useNotesSettings' -import type { EditorView } from '@renderer/types' -import { Button, Input, message, Slider, Switch } from 'antd' -import { FolderOpen } from 'lucide-react' -import type { FC } from 'react' -import { useEffect, useState } from 'react' -import { useTranslation } from 'react-i18next' -import styled from 'styled-components' - import { SettingContainer, SettingDivider, @@ -18,7 +10,14 @@ import { SettingRow, SettingRowTitle, SettingTitle -} from '.' +} from '@renderer/pages/settings' +import type { EditorView } from '@renderer/types' +import { Button, Input, message, Slider, Switch } from 'antd' +import { FolderOpen } from 'lucide-react' +import type { FC } from 'react' +import { useEffect, useState } from 'react' +import { useTranslation } from 'react-i18next' +import styled from 'styled-components' const logger = loggerService.withContext('NotesSettings') @@ -92,7 +91,7 @@ const NotesSettings: FC = () => { const isPathChanged = tempPath !== notesPath return ( - + {t('notes.settings.data.title')} diff --git a/src/renderer/src/pages/notes/NotesSidebar.tsx b/src/renderer/src/pages/notes/NotesSidebar.tsx index 6ed144dd7e..097ffd0f46 100644 --- a/src/renderer/src/pages/notes/NotesSidebar.tsx +++ b/src/renderer/src/pages/notes/NotesSidebar.tsx @@ -412,7 +412,7 @@ const NotesSidebar: FC = ({ {!isShowStarred && !isShowSearch && ( -
+
{ } /> } /> } /> - } /> } />