Spaces:
Build error
Build error
import { | |
memo, | |
} from 'react' | |
import { useNodes } from 'reactflow' | |
import FormItem from '../../nodes/_base/components/before-run-form/form-item' | |
import { BlockEnum } from '../../types' | |
import { | |
useStore, | |
useWorkflowStore, | |
} from '../../store' | |
import type { StartNodeType } from '../../nodes/start/types' | |
import cn from '@/utils/classnames' | |
const UserInput = () => { | |
const workflowStore = useWorkflowStore() | |
const inputs = useStore(s => s.inputs) | |
const nodes = useNodes<StartNodeType>() | |
const startNode = nodes.find(node => node.data.type === BlockEnum.Start) | |
const variables = startNode?.data.variables || [] | |
const handleValueChange = (variable: string, v: string) => { | |
const { | |
inputs, | |
setInputs, | |
} = workflowStore.getState() | |
setInputs({ | |
...inputs, | |
[variable]: v, | |
}) | |
} | |
if (!variables.length) | |
return null | |
return ( | |
<div className={cn('sticky top-0 bg-components-panel-on-panel-item-bg rounded-xl border-[0.5px] border-components-panel-border-subtle shadow-xs z-[1]')}> | |
<div className='px-4 pt-3 pb-4'> | |
{variables.map((variable, index) => ( | |
<div | |
key={variable.variable} | |
className='mb-4 last-of-type:mb-0' | |
> | |
<FormItem | |
autoFocus={index === 0} | |
payload={variable} | |
value={inputs[variable.variable]} | |
onChange={v => handleValueChange(variable.variable, v)} | |
/> | |
</div> | |
))} | |
</div> | |
</div> | |
) | |
} | |
export default memo(UserInput) | |