Browse Source

refactor: update radio component to handle boolean values instead of numeric (#24956)

tags/1.8.1
17hz 2 months ago
parent
commit
2ac8f8003f
No account linked to committer's email address

+ 4
- 10
web/app/components/base/form/components/base/base-field.tsx View File

}) })
}, [values, show_on]) }, [values, show_on])


const booleanRadioValue = useMemo(() => {
if (value === null || value === undefined)
return undefined
return value ? 1 : 0
}, [value])

if (!show) if (!show)
return null return null


formSchema.type === FormTypeEnum.boolean && ( formSchema.type === FormTypeEnum.boolean && (
<Radio.Group <Radio.Group
className='flex w-fit items-center' className='flex w-fit items-center'
value={booleanRadioValue}
onChange={val => field.handleChange(val === 1)}
value={value}
onChange={v => field.handleChange(v)}
> >
<Radio value={1} className='!mr-1'>True</Radio>
<Radio value={0}>False</Radio>
<Radio value={true} className='!mr-1'>True</Radio>
<Radio value={false}>False</Radio>
</Radio.Group> </Radio.Group>
) )
} }

+ 1
- 1
web/app/components/base/radio/component/group/index.tsx View File



export type TRadioGroupProps = { export type TRadioGroupProps = {
children?: ReactNode | ReactNode[] children?: ReactNode | ReactNode[]
value?: string | number
value?: string | number | boolean
className?: string className?: string
onChange?: (value: any) => void onChange?: (value: any) => void
} }

+ 1
- 1
web/app/components/base/radio/component/radio/index.tsx View File

labelClassName?: string labelClassName?: string
children?: string | ReactNode children?: string | ReactNode
checked?: boolean checked?: boolean
value?: string | number
value?: string | number | boolean
disabled?: boolean disabled?: boolean
onChange?: (e?: IRadioProps['value']) => void onChange?: (e?: IRadioProps['value']) => void
} }

+ 4
- 4
web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx View File

</div> </div>
<Radio.Group <Radio.Group
className='flex items-center' className='flex items-center'
value={value[variable] === null ? undefined : (value[variable] ? 1 : 0)}
onChange={val => handleFormChange(variable, val === 1)}
value={value[variable]}
onChange={val => handleFormChange(variable, val)}
> >
<Radio value={1} className='!mr-1'>True</Radio>
<Radio value={0}>False</Radio>
<Radio value={true} className='!mr-1'>True</Radio>
<Radio value={false}>False</Radio>
</Radio.Group> </Radio.Group>
</div> </div>
{fieldMoreInfo?.(formSchema)} {fieldMoreInfo?.(formSchema)}

+ 5
- 5
web/app/components/header/account-setting/model-provider-page/model-parameter-modal/parameter-item.tsx View File

numberInputRef.current!.value = `${num}` numberInputRef.current!.value = `${num}`
} }


const handleRadioChange = (v: number) => {
handleInputChange(v === 1)
const handleRadioChange = (v: boolean) => {
handleInputChange(v)
} }


const handleStringInputChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => { const handleStringInputChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
return ( return (
<Radio.Group <Radio.Group
className='flex w-[178px] items-center' className='flex w-[178px] items-center'
value={renderValue ? 1 : 0}
value={renderValue as boolean}
onChange={handleRadioChange} onChange={handleRadioChange}
> >
<Radio value={1} className='w-[83px]'>True</Radio>
<Radio value={0} className='w-[83px]'>False</Radio>
<Radio value={true} className='w-[83px]'>True</Radio>
<Radio value={false} className='w-[83px]'>False</Radio>
</Radio.Group> </Radio.Group>
) )
} }

Loading…
Cancel
Save