|
@@ -100,8 +100,17 @@ const InputVarList: FC<Props> = ({
|
|
|
}
|
|
|
}, [value, onChange])
|
|
|
|
|
|
- const [isFocus, setIsFocus] = useState(false)
|
|
|
-
|
|
|
+ const [inputsIsFocus, setInputsIsFocus] = useState<Record<string, boolean>>({})
|
|
|
+ const handleInputFocus = useCallback((variable: string) => {
|
|
|
+ return (value: boolean) => {
|
|
|
+ setInputsIsFocus((prev) => {
|
|
|
+ return {
|
|
|
+ ...prev,
|
|
|
+ [variable]: value,
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }, [])
|
|
|
const handleOpen = useCallback((index: number) => {
|
|
|
return () => onOpen(index)
|
|
|
}, [onOpen])
|
|
@@ -126,13 +135,13 @@ const InputVarList: FC<Props> = ({
|
|
|
</div>
|
|
|
{isString
|
|
|
? (<Input
|
|
|
- className={cn(isFocus ? 'shadow-xs bg-gray-50 border-gray-300' : 'bg-gray-100 border-gray-100', 'rounded-lg px-3 py-[6px] border')}
|
|
|
+ className={cn(inputsIsFocus[variable] ? 'shadow-xs bg-gray-50 border-gray-300' : 'bg-gray-100 border-gray-100', 'rounded-lg px-3 py-[6px] border')}
|
|
|
value={varInput?.value as string || ''}
|
|
|
onChange={handleMixedTypeChange(variable)}
|
|
|
readOnly={readOnly}
|
|
|
nodesOutputVars={availableVars}
|
|
|
availableNodes={availableNodes}
|
|
|
- onFocusChange={setIsFocus}
|
|
|
+ onFocusChange={handleInputFocus(variable)}
|
|
|
placeholder={t('workflow.nodes.http.insertVarPlaceholder')!}
|
|
|
placeholderClassName='!leading-[21px]'
|
|
|
/>)
|