Skip to content

Commit

Permalink
fix: Inconsistency Between Actual and Debug Input Variables (#6055)
Browse files Browse the repository at this point in the history
  • Loading branch information
aixgeek authored Jul 8, 2024
1 parent 0046ef7 commit 22aaf89
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use client'
import type { FC } from 'react'
import React, { useCallback } from 'react'
import React, { useCallback, useMemo } from 'react'
import produce from 'immer'
import cn from 'classnames'
import type { InputVar } from '../../../../types'
Expand All @@ -24,14 +24,39 @@ const Form: FC<Props> = ({
values,
onChange,
}) => {
const mapKeysWithSameValueSelector = useMemo(() => {
const keysWithSameValueSelector = (key: string) => {
const targetValueSelector = inputs.find(
item => item.variable === key,
)?.value_selector
if (!targetValueSelector)
return [key]

const result: string[] = []
inputs.forEach((item) => {
if (item.value_selector?.join('.') === targetValueSelector.join('.'))
result.push(item.variable)
})
return result
}

const m = new Map()
for (const input of inputs)
m.set(input.variable, keysWithSameValueSelector(input.variable))

return m
}, [inputs])

const handleChange = useCallback((key: string) => {
const mKeys = mapKeysWithSameValueSelector.get(key) ?? [key]
return (value: any) => {
const newValues = produce(values, (draft) => {
draft[key] = value
for (const k of mKeys)
draft[k] = value
})
onChange(newValues)
}
}, [values, onChange])
}, [values, onChange, mapKeysWithSameValueSelector])
const isArrayLikeType = [InputVarType.contexts, InputVarType.iterator].includes(inputs[0]?.type)
const isContext = inputs[0]?.type === InputVarType.contexts
const handleAddContext = useCallback(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,7 @@ const useOneStepRun = <T>({
variable: item.variable,
type: InputVarType.textInput,
required: true,
value_selector: item.value_selector,
}
}
return {
Expand Down
1 change: 1 addition & 0 deletions web/app/components/workflow/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ export type InputVar = {
required: boolean
hint?: string
options?: string[]
value_selector?: ValueSelector
}

export type ModelConfig = {
Expand Down

0 comments on commit 22aaf89

Please sign in to comment.