'use client'; import { useMemo } from 'react'; import { OptionProps, GroupBase, components as ReactSelectComponents, } from 'react-select'; import SelectInput, { OptionType, SelectInputProps } from './SelectInput'; import { cn } from '@/lib/helper'; interface SelectInputRadioProps extends Omit, 'closeMenuOnSelect' | 'optionComponent'> { closeMenuOnSelect?: boolean; } const RadioOption = < T extends OptionType, IsMulti extends boolean, Group extends GroupBase, >( props: OptionProps ) => { const { isSelected, label, innerRef, innerProps, className, isFocused } = props; return (
null} className='radio radio-md radio-primary pointer-events-none' />
); }; const SelectInputRadio = ( props: SelectInputRadioProps ) => { const { closeMenuOnSelect = true, className, ...restProps } = props; const customComponents = useMemo(() => { return { Option: RadioOption as typeof ReactSelectComponents.Option, }; }, []); return ( {...restProps} closeMenuOnSelect={closeMenuOnSelect} className={{ ...className, select: cn(className?.select, 'select-radio'), }} components={customComponents} /> ); }; export default SelectInputRadio;