Spaces:
Build error
Build error
import { | |
memo, | |
useCallback, | |
} from 'react' | |
import { useNodes } from 'reactflow' | |
import { useStore } from './store' | |
import { | |
useIsChatMode, | |
useNodesReadOnly, | |
useNodesSyncDraft, | |
} from './hooks' | |
import { type CommonNodeType, type InputVar, InputVarType, type Node } from './types' | |
import useConfig from './nodes/start/use-config' | |
import type { StartNodeType } from './nodes/start/types' | |
import type { PromptVariable } from '@/models/debug' | |
import NewFeaturePanel from '@/app/components/base/features/new-feature-panel' | |
const Features = () => { | |
const setShowFeaturesPanel = useStore(s => s.setShowFeaturesPanel) | |
const isChatMode = useIsChatMode() | |
const { nodesReadOnly } = useNodesReadOnly() | |
const { handleSyncWorkflowDraft } = useNodesSyncDraft() | |
const nodes = useNodes<CommonNodeType>() | |
const startNode = nodes.find(node => node.data.type === 'start') | |
const { id, data } = startNode as Node<StartNodeType> | |
const { handleAddVariable } = useConfig(id, data) | |
const handleAddOpeningStatementVariable = (variables: PromptVariable[]) => { | |
const newVariable = variables[0] | |
const startNodeVariable: InputVar = { | |
variable: newVariable.key, | |
label: newVariable.name, | |
type: InputVarType.textInput, | |
max_length: newVariable.max_length, | |
required: newVariable.required || false, | |
options: [], | |
} | |
handleAddVariable(startNodeVariable) | |
} | |
const handleFeaturesChange = useCallback(() => { | |
handleSyncWorkflowDraft() | |
setShowFeaturesPanel(true) | |
}, [handleSyncWorkflowDraft, setShowFeaturesPanel]) | |
return ( | |
<NewFeaturePanel | |
show | |
isChatMode={isChatMode} | |
disabled={nodesReadOnly} | |
onChange={handleFeaturesChange} | |
onClose={() => setShowFeaturesPanel(false)} | |
onAutoAddPromptVariable={handleAddOpeningStatementVariable} | |
workflowVariables={data.variables} | |
/> | |
) | |
} | |
export default memo(Features) | |