| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | 
							- 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)
 
 
  |