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/workflow/panel/index.tsx | 78 +++++++++++++++++++++++++++++++++------
1 files changed, 66 insertions(+), 12 deletions(-)
diff --git a/app/components/workflow/panel/index.tsx b/app/components/workflow/panel/index.tsx
index 8e510f4..51cb170 100644
--- a/app/components/workflow/panel/index.tsx
+++ b/app/components/workflow/panel/index.tsx
@@ -1,34 +1,61 @@
import type { FC } from 'react'
import { memo } from 'react'
import { useNodes } from 'reactflow'
+import { useShallow } from 'zustand/react/shallow'
import type { CommonNodeType } from '../types'
import { Panel as NodePanel } from '../nodes'
import { useStore } from '../store'
+import {
+ useIsChatMode,
+} from '../hooks'
+import DebugAndPreview from './debug-and-preview'
+import Record from './record'
+import WorkflowPreview from './workflow-preview'
+import ChatRecord from './chat-record'
+import ChatVariablePanel from './chat-variable-panel'
import EnvPanel from './env-panel'
+import GlobalVariablePanel from './global-variable-panel'
import cn from '@/utils/classnames'
+import { useStore as useAppStore } from '@/app/components/app/store'
+import MessageLogModal from '@/app/components/base/message-log-modal'
-export type PanelProps = {
- components?: {
- left?: React.ReactNode
- right?: React.ReactNode
- }
-}
-const Panel: FC<PanelProps> = ({
- components,
-}) => {
+const Panel: FC = () => {
const nodes = useNodes<CommonNodeType>()
+ const isChatMode = useIsChatMode()
const selectedNode = nodes.find(node => node.data.selected)
+ const historyWorkflowData = useStore(s => s.historyWorkflowData)
+ const showDebugAndPreviewPanel = useStore(s => s.showDebugAndPreviewPanel)
const showEnvPanel = useStore(s => s.showEnvPanel)
+ const showChatVariablePanel = useStore(s => s.showChatVariablePanel)
+ const showGlobalVariablePanel = useStore(s => s.showGlobalVariablePanel)
const isRestoring = useStore(s => s.isRestoring)
+ const { currentLogItem, setCurrentLogItem, showMessageLogModal, setShowMessageLogModal, currentLogModalActiveTab } = useAppStore(useShallow(state => ({
+ currentLogItem: state.currentLogItem,
+ setCurrentLogItem: state.setCurrentLogItem,
+ showMessageLogModal: state.showMessageLogModal,
+ setShowMessageLogModal: state.setShowMessageLogModal,
+ currentLogModalActiveTab: state.currentLogModalActiveTab,
+ })))
return (
<div
tabIndex={-1}
- className={cn('absolute bottom-2 right-0 top-14 z-10 flex outline-none')}
+ className={cn('absolute top-14 right-0 bottom-2 flex z-10 outline-none')}
key={`${isRestoring}`}
>
{
- components?.left
+ showMessageLogModal && (
+ <MessageLogModal
+ fixedWidth
+ width={400}
+ currentLogItem={currentLogItem}
+ onCancel={() => {
+ setCurrentLogItem()
+ setShowMessageLogModal(false)
+ }}
+ defaultTab={currentLogModalActiveTab}
+ />
+ )
}
{
!!selectedNode && (
@@ -36,13 +63,40 @@
)
}
{
- components?.right
+ historyWorkflowData && !isChatMode && (
+ <Record />
+ )
+ }
+ {
+ historyWorkflowData && isChatMode && (
+ <ChatRecord />
+ )
+ }
+ {
+ showDebugAndPreviewPanel && isChatMode && (
+ <DebugAndPreview />
+ )
+ }
+ {
+ showDebugAndPreviewPanel && !isChatMode && (
+ <WorkflowPreview />
+ )
}
{
showEnvPanel && (
<EnvPanel />
)
}
+ {
+ showChatVariablePanel && (
+ <ChatVariablePanel />
+ )
+ }
+ {
+ showGlobalVariablePanel && (
+ <GlobalVariablePanel />
+ )
+ }
</div>
)
}
--
Gitblit v1.8.0