From 6c19c9acba97db2332c1e3e79f9a898e95e38005 Mon Sep 17 00:00:00 2001 From: zerob13 Date: Sat, 11 Oct 2025 17:48:28 +0800 Subject: [PATCH] feat(history): move history btn to appbar --- src/renderer/shell/components/AppBar.vue | 24 +++++++++ src/renderer/src/App.vue | 19 ++++++- src/renderer/src/components/ThreadView.vue | 60 +++++++++++++++++++++ src/renderer/src/components/ThreadsView.vue | 1 - src/renderer/src/components/TitleView.vue | 38 ++++--------- src/renderer/src/events.ts | 5 ++ src/renderer/src/views/ChatTabView.vue | 44 +-------------- 7 files changed, 119 insertions(+), 72 deletions(-) create mode 100644 src/renderer/src/components/ThreadView.vue diff --git a/src/renderer/shell/components/AppBar.vue b/src/renderer/shell/components/AppBar.vue index 293c2ec75..9d1fe18fc 100644 --- a/src/renderer/shell/components/AppBar.vue +++ b/src/renderer/shell/components/AppBar.vue @@ -75,6 +75,13 @@ + - - -
- -
+
+
@@ -35,10 +21,6 @@ const emit = defineEmits(['messageNavigationToggle']) const chatStore = useChatStore() -const onSidebarButtonClick = () => { - chatStore.isSidebarOpen = !chatStore.isSidebarOpen -} - // 新增的事件处理函数 const onMessageNavigationButtonClick = () => { emit('messageNavigationToggle') diff --git a/src/renderer/src/events.ts b/src/renderer/src/events.ts index 59a93eae6..ab01adb7f 100644 --- a/src/renderer/src/events.ts +++ b/src/renderer/src/events.ts @@ -124,6 +124,11 @@ export const SHORTCUT_EVENTS = { DELETE_CONVERSATION: 'shortcut:delete-conversation' } +// Thread view related events +export const THREAD_VIEW_EVENTS = { + TOGGLE: 'thread-view:toggle' +} + // 标签页相关事件 export const TAB_EVENTS = { TITLE_UPDATED: 'tab:title-updated', // 标签页标题更新 diff --git a/src/renderer/src/views/ChatTabView.vue b/src/renderer/src/views/ChatTabView.vue index 738c6fbcb..0760b4418 100644 --- a/src/renderer/src/views/ChatTabView.vue +++ b/src/renderer/src/views/ChatTabView.vue @@ -8,30 +8,6 @@ ]" >
- - -
- -
-
-
@@ -73,7 +49,7 @@
-
+
import('@/components/ThreadsView.vue')) const TitleView = defineAsyncComponent(() => import('@/components/TitleView.vue')) const ChatView = defineAsyncComponent(() => import('@/components/ChatView.vue')) const NewThread = defineAsyncComponent(() => import('@/components/NewThread.vue')) @@ -108,7 +82,6 @@ const artifactStore = useArtifactStore() const route = useRoute() const chatStore = useChatStore() const title = useTitle() -const langStore = useLanguageStore() const chatViewRef = ref() // 添加标题更新逻辑 const updateTitle = () => { @@ -141,21 +114,8 @@ watch( ) // 点击外部区域关闭侧边栏 -const sidebarRef = ref() -const messageNavigationRef = ref() const isLargeScreen = useMediaQuery('(min-width: 1024px)') -onClickOutside(sidebarRef, (event) => { - const isClickInMessageNavigation = messageNavigationRef.value?.contains(event.target as Node) - - if (chatStore.isSidebarOpen && !isLargeScreen.value) { - chatStore.isSidebarOpen = false - } - if (chatStore.isMessageNavigationOpen && !isLargeScreen.value && !isClickInMessageNavigation) { - chatStore.isMessageNavigationOpen = false - } -}) - const handleMessageNavigationToggle = () => { if (artifactStore.isOpen) { artifactStore.isOpen = false