mirror of https://github.com/langgenius/dify.git
feat: handle limit tool var type
This commit is contained in:
parent
2ebd8d9fdc
commit
acd0e22b9e
|
|
@ -18,6 +18,7 @@ export const toolParametersToFormSchemas = (parameters: ToolParameter[]) => {
|
|||
...parameter,
|
||||
variable: parameter.name,
|
||||
type: toType(parameter.type),
|
||||
_type: parameter.type,
|
||||
show_on: [],
|
||||
options: parameter.options?.map((option) => {
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ type Props = {
|
|||
schema: CredentialFormSchema[]
|
||||
value: ToolVarInput[]
|
||||
onChange: (value: ToolVarInput[]) => void
|
||||
onOpen?: (index: number) => void
|
||||
isSupportConstantValue?: boolean
|
||||
filterVar?: (payload: Var, valueSelector: ValueSelector) => boolean
|
||||
}
|
||||
|
|
@ -26,6 +27,7 @@ const InputVarList: FC<Props> = ({
|
|||
schema,
|
||||
value,
|
||||
onChange,
|
||||
onOpen = () => { },
|
||||
isSupportConstantValue,
|
||||
filterVar,
|
||||
}) => {
|
||||
|
|
@ -67,6 +69,9 @@ const InputVarList: FC<Props> = ({
|
|||
}
|
||||
}, [value, onChange, isSupportConstantValue])
|
||||
|
||||
const handleOpen = useCallback((index: number) => {
|
||||
return () => onOpen(index)
|
||||
}, [onOpen])
|
||||
return (
|
||||
<div className='space-y-3'>
|
||||
{
|
||||
|
|
@ -76,7 +81,7 @@ const InputVarList: FC<Props> = ({
|
|||
type,
|
||||
required,
|
||||
tooltip,
|
||||
}) => {
|
||||
}, index) => {
|
||||
const varInput = keyValues[variable]
|
||||
return (
|
||||
<div key={variable} className='space-y-1'>
|
||||
|
|
@ -91,6 +96,7 @@ const InputVarList: FC<Props> = ({
|
|||
nodeId={nodeId}
|
||||
value={varInput?.variable_type === VarKindType.static ? (varInput?.value || '') : (varInput?.value_selector || [])}
|
||||
onChange={handleChange(variable)}
|
||||
onOpen={handleOpen(index)}
|
||||
isSupportConstantValue={isSupportConstantValue}
|
||||
defaultVarKindType={varInput?.variable_type}
|
||||
filterVar={filterVar}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ const Panel: FC<NodePanelProps<ToolNodeType>> = ({
|
|||
inputs,
|
||||
toolInputVarSchema,
|
||||
setInputVar,
|
||||
handleOnVarOpen,
|
||||
filterVar,
|
||||
toolSettingSchema,
|
||||
toolSettingValue,
|
||||
|
|
@ -83,6 +84,7 @@ const Panel: FC<NodePanelProps<ToolNodeType>> = ({
|
|||
onChange={setInputVar}
|
||||
filterVar={filterVar}
|
||||
isSupportConstantValue
|
||||
onOpen={handleOnVarOpen}
|
||||
/>
|
||||
</Field>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -101,11 +101,19 @@ const useConfig = (id: string, payload: ToolNodeType) => {
|
|||
})
|
||||
}, [inputs, setInputs])
|
||||
|
||||
// TODO: dynamic setting as the current var type
|
||||
const filterVar = useCallback((varPayload: Var) => {
|
||||
return varPayload.type !== VarVarType.arrayFile
|
||||
const [currVarIndex, setCurrVarIndex] = useState(-1)
|
||||
const currVarType = toolInputVarSchema[currVarIndex]?._type
|
||||
const handleOnVarOpen = useCallback((index: number) => {
|
||||
setCurrVarIndex(index)
|
||||
}, [])
|
||||
|
||||
const filterVar = useCallback((varPayload: Var) => {
|
||||
if (currVarType)
|
||||
return varPayload.type === currVarType
|
||||
|
||||
return varPayload.type !== VarVarType.arrayFile
|
||||
}, [currVarType])
|
||||
|
||||
const isLoading = currTool && (isBuiltIn ? !currCollection : false)
|
||||
|
||||
// single run
|
||||
|
|
@ -170,6 +178,7 @@ const useConfig = (id: string, payload: ToolNodeType) => {
|
|||
setToolSettingValue,
|
||||
toolInputVarSchema,
|
||||
setInputVar,
|
||||
handleOnVarOpen,
|
||||
filterVar,
|
||||
currCollection,
|
||||
isShowAuthBtn,
|
||||
|
|
|
|||
Loading…
Reference in New Issue