import type { FC } from 'react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' import { RiLoader2Line, RiStopCircleFill } from '@remixicon/react' import Tooltip from '@/app/components/base/tooltip' import { useStore } from '../store' import useCurrentVars from '../hooks/use-inspect-vars-crud' import { WorkflowRunningStatus } from '@/app/components/workflow/types' import { NodeRunningStatus } from '@/app/components/workflow/types' import cn from '@/utils/classnames' const VariableInspectTrigger: FC = () => { const { t } = useTranslation() const showVariableInspectPanel = useStore(s => s.showVariableInspectPanel) const setShowVariableInspectPanel = useStore(s => s.setShowVariableInspectPanel) const workflowRunningData = useStore(s => s.workflowRunningData) const isRunning = useMemo(() => { if (!workflowRunningData) return false if (workflowRunningData.result.status === WorkflowRunningStatus.Running) return true // TODO: step running state use data in inspector return (workflowRunningData.tracing || []).some(tracingData => tracingData.status === NodeRunningStatus.Running) }, [workflowRunningData]) const environmentVariables = useStore(s => s.environmentVariables) const { conversationVars, systemVars, nodesWithInspectVars, deleteAllInspectorVars, } = useCurrentVars() const currentVars = useMemo(() => { const allVars = [...environmentVariables, ...conversationVars, ...systemVars, ...nodesWithInspectVars] return allVars }, [conversationVars, systemVars, nodesWithInspectVars]) // ##TODD stop handle if (showVariableInspectPanel) return null return (