From 4512f65b2f7131adee927e136f83687d26cc23e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=87=AA=E7=94=B1=E7=9A=84=E4=B8=96=E7=95=8C=E4=BA=BA?=
<3196812536@qq.com>
Date: Thu, 31 Jul 2025 19:15:24 +0800
Subject: [PATCH] fix: merge main branch error
---
src/renderer/src/App.tsx | 1 +
src/renderer/src/Router.tsx | 2 ++
src/renderer/src/i18n/locales/zh-cn.json | 29 +++++++++++++++++++++-
src/renderer/src/pages/notes/NotesPage.tsx | 25 +++++++++++--------
src/renderer/src/store/index.ts | 2 +-
src/renderer/src/store/migrate.ts | 2 +-
6 files changed, 47 insertions(+), 14 deletions(-)
diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx
index ad18a9b193..f216afb2c0 100644
--- a/src/renderer/src/App.tsx
+++ b/src/renderer/src/App.tsx
@@ -2,6 +2,7 @@ import '@renderer/databases'
import { loggerService } from '@logger'
import store, { persistor } from '@renderer/store'
+import React from 'react'
import { Provider } from 'react-redux'
import { PersistGate } from 'redux-persist/integration/react'
diff --git a/src/renderer/src/Router.tsx b/src/renderer/src/Router.tsx
index 624c6ccc47..8ea788a56e 100644
--- a/src/renderer/src/Router.tsx
+++ b/src/renderer/src/Router.tsx
@@ -13,6 +13,7 @@ import HomePage from './pages/home/HomePage'
import KnowledgePage from './pages/knowledge/KnowledgePage'
import LaunchpadPage from './pages/launchpad/LaunchpadPage'
import MinAppsPage from './pages/minapps/MinAppsPage'
+import NotesPage from './pages/notes/NotesPage'
import PaintingsRoutePage from './pages/paintings/PaintingsRoutePage'
import SettingsPage from './pages/settings/SettingsPage'
import TranslatePage from './pages/translate/TranslatePage'
@@ -28,6 +29,7 @@ const Router: FC = () => {
} />
} />
} />
+ } />
} />
} />
} />
diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json
index 4b49f9903f..e70935ba2f 100644
--- a/src/renderer/src/i18n/locales/zh-cn.json
+++ b/src/renderer/src/i18n/locales/zh-cn.json
@@ -553,6 +553,7 @@
"label": "导出为 Markdown",
"reason": "导出为 Markdown (包含思考)"
},
+ "notes": "导出到笔记",
"notion": "导出到 Notion",
"obsidian": "导出到 Obsidian",
"obsidian_atributes": "配置笔记属性",
@@ -1192,6 +1193,9 @@
"specified": "导出 Markdown 文件失败"
}
},
+ "notes": {
+ "export": "导出笔记失败"
+ },
"notion": {
"export": "导出 Notion 错误,请检查连接状态并对照文档检查配置",
"no_api_key": "未配置 Notion API Key 或 Notion Database ID"
@@ -1284,6 +1288,9 @@
"specified": "成功导出 Markdown 文件"
}
},
+ "notes": {
+ "export": "成功导出到笔记"
+ },
"notion": {
"export": "成功导出到 Notion"
},
@@ -1463,6 +1470,25 @@
"hide_sidebar": "隐藏侧边栏",
"show_sidebar": "显示侧边栏"
},
+ "notes": {
+ "title": "笔记",
+ "empty": "暂无笔记",
+ "new_folder": "新建文件夹",
+ "new_note": "新建笔记",
+ "untitled_note": "无标题笔记",
+ "untitled_folder": "新文件夹",
+ "rename": "重命名",
+ "delete": "删除",
+ "star": "收藏",
+ "unstar": "取消收藏",
+ "expand": "展开",
+ "collapse": "收起",
+ "delete_confirm": "确定要删除这个{{type}}吗?",
+ "delete_folder_confirm": "确定要删除文件夹 \"{{name}}\" 及其所有内容吗?",
+ "delete_note_confirm": "确定要删除笔记 \"{{name}}\" 吗?",
+ "folder": "文件夹",
+ "content_placeholder": "请输入笔记内容..."
+ },
"notification": {
"assistant": "助手响应",
"knowledge": {
@@ -2030,6 +2056,7 @@
"joplin": "导出到 Joplin",
"markdown": "导出为 Markdown",
"markdown_reason": "导出为 Markdown(包含思考)",
+ "notes": "导出到笔记",
"notion": "导出到 Notion",
"obsidian": "导出到 Obsidian",
"plain_text": "复制为纯文本",
@@ -3539,4 +3566,4 @@
"show_window": "显示窗口",
"visualization": "可视化"
}
-}
\ No newline at end of file
+}
diff --git a/src/renderer/src/pages/notes/NotesPage.tsx b/src/renderer/src/pages/notes/NotesPage.tsx
index 7b95d07e2e..9afd594559 100644
--- a/src/renderer/src/pages/notes/NotesPage.tsx
+++ b/src/renderer/src/pages/notes/NotesPage.tsx
@@ -1,5 +1,6 @@
import 'vditor/dist/index.css'
+import { loggerService } from '@logger'
import Scrollbar from '@renderer/components/Scrollbar'
import { useTheme } from '@renderer/context/ThemeProvider'
import { useSettings } from '@renderer/hooks/useSettings'
@@ -16,6 +17,8 @@ import Vditor from 'vditor'
import NotesSidebar from './NotesSidebar'
import { NotesService } from './utils/NotesService'
+const logger = loggerService.withContext('NotesPage')
+
const NotesPage: FC = () => {
const editorRef = useRef(null)
const [vditor, setVditor] = useState(null)
@@ -51,7 +54,7 @@ const NotesPage: FC = () => {
await NotesService.updateNote(activeNode, content)
}
} catch (error) {
- console.error('Failed to save note:', error)
+ logger.error('Failed to save note:', error as Error)
}
},
[activeNodeId, findNodeById, notesTree]
@@ -63,7 +66,7 @@ const NotesPage: FC = () => {
const tree = await NotesService.getNotesTree()
setNotesTree(tree)
} catch (error) {
- console.error('Failed to load notes tree:', error)
+ logger.error('Failed to load notes tree:', error as Error)
}
}
@@ -120,7 +123,7 @@ const NotesPage: FC = () => {
editor.setValue(content)
}
} catch (error) {
- console.error('Failed to load note content after editor init:', error)
+ logger.error('Failed to load note content after editor init:', error as Error)
}
}
},
@@ -163,7 +166,7 @@ const NotesPage: FC = () => {
const updatedTree = await NotesService.getNotesTree()
setNotesTree(updatedTree)
} catch (error) {
- console.error('Failed to create folder:', error)
+ logger.error('Failed to create folder:', error as Error)
} finally {
setIsLoading(false)
}
@@ -186,7 +189,7 @@ const NotesPage: FC = () => {
// 自动选择新创建的笔记
setActiveNodeId(newNote.id)
} catch (error) {
- console.error('Failed to create note:', error)
+ logger.error('Failed to create note:', error as Error)
} finally {
setIsLoading(false)
}
@@ -217,7 +220,7 @@ const NotesPage: FC = () => {
vditor.setValue(content)
}
} catch (error) {
- console.error('Failed to load note:', error)
+ logger.error('Failed to load note:', error as Error)
} finally {
setIsLoading(false)
}
@@ -244,7 +247,7 @@ const NotesPage: FC = () => {
}
}
} catch (error) {
- console.error('Failed to delete node:', error)
+ logger.error('Failed to delete node:', error as Error)
} finally {
setIsLoading(false)
}
@@ -258,7 +261,7 @@ const NotesPage: FC = () => {
const updatedTree = await NotesService.getNotesTree()
setNotesTree(updatedTree)
} catch (error) {
- console.error('Failed to rename node:', error)
+ logger.error('Failed to rename node:', error as Error)
} finally {
setIsLoading(false)
}
@@ -271,7 +274,7 @@ const NotesPage: FC = () => {
const updatedTree = await NotesService.getNotesTree()
setNotesTree(updatedTree)
} catch (error) {
- console.error('Failed to toggle starred:', error)
+ logger.error('Failed to toggle starred:', error as Error)
}
}
@@ -282,7 +285,7 @@ const NotesPage: FC = () => {
const updatedTree = await NotesService.getNotesTree()
setNotesTree(updatedTree)
} catch (error) {
- console.error('Failed to toggle expanded:', error)
+ logger.error('Failed to toggle expanded:', error as Error)
}
}
@@ -294,7 +297,7 @@ const NotesPage: FC = () => {
const updatedTree = await NotesService.getNotesTree()
setNotesTree(updatedTree)
} catch (error) {
- console.error('Failed to move node:', error)
+ logger.error('Failed to move node:', error as Error)
} finally {
setIsLoading(false)
}
diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts
index 74fdc28fd5..f818559c38 100644
--- a/src/renderer/src/store/index.ts
+++ b/src/renderer/src/store/index.ts
@@ -60,7 +60,7 @@ const persistedReducer = persistReducer(
{
key: 'cherry-studio',
storage,
- version: 125,
+ version: 126,
blacklist: ['runtime', 'messages', 'messageBlocks', 'tabs'],
migrate
},
diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts
index 9632cfd82b..8da5c81e20 100644
--- a/src/renderer/src/store/migrate.ts
+++ b/src/renderer/src/store/migrate.ts
@@ -1937,7 +1937,7 @@ const migrateConfig = {
return state
}
},
- '122': (state: RootState) => {
+ '126': (state: RootState) => {
if (state.settings && state.settings.sidebarIcons) {
// Check if 'notes' is not already in visible icons
if (!state.settings.sidebarIcons.visible.includes('notes' as any)) {