'use client' import { useCallback } from 'react' export default function QInput({ type, readOnly = false, options = [], value, onChange }) { // options = options || [ // { // id: 'one', // name: 'Option 1', // value: '111', // }, // { // id: 'two', // name: 'Option 2', // value: '222', // }, // { // id: 'three', // name: 'Option 3', // value: '333', // }, // ] const handleChange = useCallback( (e, optionValue) => { if (type === 'radio') { onChange(e.target.value) } else { const newValue = value.includes(optionValue) ? value.filter((v) => v !== optionValue) : [...value, optionValue] onChange(newValue) } }, [type, value, onChange], ) const handleTextChange = useCallback( (e) => { onChange(e.target.value) }, [onChange], ) return ( <> {type === 'text' ? (
) : type === 'radio' || type === 'checkbox' ? (
{options?.map((option) => (
handleChange(e, option.value)} />
))}
) : null} ) }