Spaces:
Build error
Build error
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' | |
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 top-14 right-0 bottom-2 flex z-10 outline-none')} | |
key={`${isRestoring}`} | |
> | |
{ | |
showMessageLogModal && ( | |
<MessageLogModal | |
fixedWidth | |
width={400} | |
currentLogItem={currentLogItem} | |
onCancel={() => { | |
setCurrentLogItem() | |
setShowMessageLogModal(false) | |
}} | |
defaultTab={currentLogModalActiveTab} | |
/> | |
) | |
} | |
{ | |
!!selectedNode && ( | |
<NodePanel {...selectedNode!} /> | |
) | |
} | |
{ | |
historyWorkflowData && !isChatMode && ( | |
<Record /> | |
) | |
} | |
{ | |
historyWorkflowData && isChatMode && ( | |
<ChatRecord /> | |
) | |
} | |
{ | |
showDebugAndPreviewPanel && isChatMode && ( | |
<DebugAndPreview /> | |
) | |
} | |
{ | |
showDebugAndPreviewPanel && !isChatMode && ( | |
<WorkflowPreview /> | |
) | |
} | |
{ | |
showEnvPanel && ( | |
<EnvPanel /> | |
) | |
} | |
{ | |
showChatVariablePanel && ( | |
<ChatVariablePanel /> | |
) | |
} | |
{ | |
showGlobalVariablePanel && ( | |
<GlobalVariablePanel /> | |
) | |
} | |
</div> | |
) | |
} | |
export default memo(Panel) | |