This commit is contained in:
@@ -67,14 +67,31 @@ const ManageForms: FC<Props> = (props) => {
|
||||
<div className='text-sm mb-3'>{item.name}</div>
|
||||
<div className='flex gap-5 flex-wrap'>
|
||||
{
|
||||
item.options?.map((value) => {
|
||||
item.options?.map((option) => {
|
||||
const selectedValues = (value?.value ?? '')
|
||||
.split(',')
|
||||
.map((v) => v.trim())
|
||||
.filter(Boolean)
|
||||
const isChecked = selectedValues.includes(option.value)
|
||||
|
||||
const handleCheckboxChange = (checked: boolean) => {
|
||||
if (item.multiple) {
|
||||
const next = checked
|
||||
? [...selectedValues, option.value]
|
||||
: selectedValues.filter((v) => v !== option.value)
|
||||
handleChange(item.id, next.join(','))
|
||||
} else {
|
||||
handleChange(item.id, checked ? option.value : '')
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<div key={value.id} className='flex gap-2 items-center'>
|
||||
<div>{value.value}</div>
|
||||
<div key={option.id} className='flex gap-2 items-center'>
|
||||
<div>{option.value}</div>
|
||||
<Checkbox
|
||||
name={item.id + ''}
|
||||
checked={value?.value === value.value}
|
||||
onCheckedChange={(checked) => handleChange(item.id, checked ? value.value : '')}
|
||||
checked={isChecked}
|
||||
onCheckedChange={handleCheckboxChange}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user