import type { FC } from 'react' import { useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import { RiCloseLine, } from '@remixicon/react' import { useStore } from '../store' import useCurrentVars from '../hooks/use-inspect-vars-crud' import Empty from './empty' import Left from './left' import Right from './right' import ActionButton from '@/app/components/base/action-button' import type { VarInInspect } from '@/types/workflow' import cn from '@/utils/classnames' export type currentVarType = { nodeId: string nodeTitle: string nodeType: string var: VarInInspect } const Panel: FC = () => { const { t } = useTranslation() const bottomPanelWidth = useStore(s => s.bottomPanelWidth) const setShowVariableInspectPanel = useStore(s => s.setShowVariableInspectPanel) const [showLeftPanel, setShowLeftPanel] = useState(true) const [currentNodeVar, setCurrentNodeVar] = useState() const environmentVariables = useStore(s => s.environmentVariables) const { conversationVars, systemVars, nodesWithInspectVars, } = useCurrentVars() const isEmpty = useMemo(() => { const allVars = [...environmentVariables, ...conversationVars, ...systemVars, ...nodesWithInspectVars] return allVars.length === 0 }, [conversationVars, systemVars, nodesWithInspectVars]) if (isEmpty) { return (
{t('workflow.debug.variableInspect.title')}
setShowVariableInspectPanel(false)}>
) } return (
{/* left */} {bottomPanelWidth < 488 && showLeftPanel &&
setShowLeftPanel(false)}>
}
{/* right */}
setShowLeftPanel(true)} />
) } export default Panel