From 77950e48c76f4a3b29d01831d43039caba29888a Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期二, 18 十一月 2025 14:12:42 +0800
Subject: [PATCH] 修改
---
app/components/base/chat/chat-with-history/index.tsx | 90 ++++++++++++++++----------------------------
1 files changed, 33 insertions(+), 57 deletions(-)
diff --git a/app/components/base/chat/chat-with-history/index.tsx b/app/components/base/chat/chat-with-history/index.tsx
index dfd7bd2..7282dd4 100644
--- a/app/components/base/chat/chat-with-history/index.tsx
+++ b/app/components/base/chat/chat-with-history/index.tsx
@@ -11,15 +11,14 @@
} from './context'
import { useChatWithHistory } from './hooks'
import Sidebar from './sidebar'
-import Header from './header'
import HeaderInMobile from './header-in-mobile'
+import ConfigPanel from './config-panel'
import ChatWrapper from './chat-wrapper'
import type { InstalledApp } from '@/models/explore'
import Loading from '@/app/components/base/loading'
import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints'
import { checkOrSetAccessToken } from '@/app/components/share/utils'
import AppUnavailable from '@/app/components/base/app-unavailable'
-import cn from '@/utils/classnames'
type ChatWithHistoryProps = {
className?: string
@@ -31,17 +30,17 @@
appInfoError,
appData,
appInfoLoading,
+ appPrevChatTree,
+ showConfigPanelBeforeChat,
appChatListDataLoading,
chatShouldReloadKey,
isMobile,
themeBuilder,
- sidebarCollapseState,
} = useChatWithHistoryContext()
- const isSidebarCollapsed = sidebarCollapseState
+
+ const chatReady = (!showConfigPanelBeforeChat || !!appPrevChatTree.length)
const customConfig = appData?.custom_config
const site = appData?.site
-
- const [showSidePanel, setShowSidePanel] = useState(false)
useEffect(() => {
themeBuilder?.buildTheme(site?.chat_color_theme, site?.chat_color_theme_inverted)
@@ -66,44 +65,35 @@
}
return (
- <div className={cn(
- 'flex h-full bg-background-default-burn',
- isMobile && 'flex-col',
- className,
- )}>
- {!isMobile && (
- <div className={cn(
- 'flex w-[236px] flex-col p-1 pr-0 transition-all duration-200 ease-in-out',
- isSidebarCollapsed && 'w-0 overflow-hidden !p-0',
- )}>
+ <div className={`h-full flex bg-white ${className} ${isMobile && 'flex-col'}`}>
+ {
+ !isMobile && (
<Sidebar />
- </div>
- )}
- {isMobile && (
- <HeaderInMobile />
- )}
- <div className={cn('relative grow p-2', isMobile && 'h-[calc(100%_-_56px)] p-0')}>
- {isSidebarCollapsed && (
- <div
- className={cn(
- 'absolute top-0 z-20 flex h-full w-[256px] flex-col p-2 transition-all duration-500 ease-in-out',
- showSidePanel ? 'left-0' : 'left-[-248px]',
- )}
- onMouseEnter={() => setShowSidePanel(true)}
- onMouseLeave={() => setShowSidePanel(false)}
- >
- <Sidebar isPanel />
- </div>
- )}
- <div className={cn('flex h-full flex-col overflow-hidden border-[0,5px] border-components-panel-border-subtle bg-chatbot-bg', isMobile ? 'rounded-t-2xl' : 'rounded-2xl')}>
- {!isMobile && <Header />}
- {appChatListDataLoading && (
+ )
+ }
+ {
+ isMobile && (
+ <HeaderInMobile />
+ )
+ }
+ <div className={`grow overflow-hidden ${showConfigPanelBeforeChat && !appPrevChatTree.length && 'flex items-center justify-center'}`}>
+ {
+ showConfigPanelBeforeChat && !appChatListDataLoading && !appPrevChatTree.length && (
+ <div className={`flex w-full items-center justify-center h-full ${isMobile && 'px-4'}`}>
+ <ConfigPanel />
+ </div>
+ )
+ }
+ {
+ appChatListDataLoading && chatReady && (
<Loading type='app' />
- )}
- {!appChatListDataLoading && (
+ )
+ }
+ {
+ chatReady && !appChatListDataLoading && (
<ChatWrapper key={chatShouldReloadKey} />
- )}
- </div>
+ )
+ }
</div>
</div>
)
@@ -133,6 +123,7 @@
appPrevChatTree,
pinnedConversationList,
conversationList,
+ showConfigPanelBeforeChat,
newConversationInputs,
newConversationInputsRef,
handleNewConversationInputsChange,
@@ -151,14 +142,6 @@
appId,
handleFeedback,
currentChatInstanceRef,
- sidebarCollapseState,
- handleSidebarCollapse,
- clearChatList,
- setClearChatList,
- isResponding,
- setIsResponding,
- currentConversationInputs,
- setCurrentConversationInputs,
} = useChatWithHistory(installedAppInfo)
return (
@@ -174,6 +157,7 @@
appPrevChatTree,
pinnedConversationList,
conversationList,
+ showConfigPanelBeforeChat,
newConversationInputs,
newConversationInputsRef,
handleNewConversationInputsChange,
@@ -194,14 +178,6 @@
handleFeedback,
currentChatInstanceRef,
themeBuilder,
- sidebarCollapseState,
- handleSidebarCollapse,
- clearChatList,
- setClearChatList,
- isResponding,
- setIsResponding,
- currentConversationInputs,
- setCurrentConversationInputs,
}}>
<ChatWithHistory className={className} />
</ChatWithHistoryContext.Provider>
--
Gitblit v1.8.0