chore: fix if not value set value

This commit is contained in:
Joel 2025-07-28 14:49:44 +08:00
parent 1e18c828d9
commit ff9d051635
3 changed files with 14 additions and 8 deletions

View File

@ -217,7 +217,7 @@ const ConditionItem = ({
const newCondition = produce(condition, (draft) => {
draft.variable_selector = valueSelector
draft.varType = resolvedVarType
draft.value = ''
draft.value = resolvedVarType === VarType.boolean ? 'false' : ''
draft.comparison_operator = getOperators(resolvedVarType)[0]
setTimeout(() => setControlPromptEditorRerenderKey(Date.now()))
})

View File

@ -144,7 +144,7 @@ const useConfig = (id: string, payload: IfElseNodeType) => {
varType: varItem.type,
variable_selector: valueSelector,
comparison_operator: getOperators(varItem.type, getIsVarFileAttribute(valueSelector) ? { key: valueSelector.slice(-1)[0] } : undefined)[0],
value: '',
value: varItem.type === VarType.boolean ? 'false' : '',
})
}
})

View File

@ -1,31 +1,37 @@
'use client'
import type { FC } from 'react'
import React, { useCallback } from 'react'
import React, { useCallback, useMemo } from 'react'
import OptionCard from '../../../nodes/_base/components/option-card'
type Props = {
value: boolean
onChange: (value: boolean) => void
value: boolean | string
onChange: (value: string) => void
}
const BoolValue: FC<Props> = ({
value,
onChange,
}) => {
const booleanValue = useMemo(() => {
if(typeof value === 'boolean')
return value
return value === 'true'
}, [value])
const handleChange = useCallback((newValue: boolean) => {
return () => {
onChange(newValue)
onChange(newValue.toString()) // the backend expects a string value: 'true' or 'false'
}
}, [onChange])
return (
<div className='flex w-full space-x-1'>
<OptionCard className='grow'
selected={value}
selected={booleanValue}
title='True'
onSelect={handleChange(true)}
/>
<OptionCard className='grow'
selected={!value}
selected={!booleanValue}
title='False'
onSelect={handleChange(false)}
/>