'use client'; import * as React from 'react'; import { useOnClickOutside } from 'usehooks-ts'; import { SelectContext } from './SelectContext'; export default function Select({ children, value: controlledValue, onChange, defaultValue, }: { children: React.ReactNode; value?: string; onChange?: (value: string) => void; defaultValue?: string; }) { const [open, setOpen] = React.useState(false); const [internalValue, setInternalValue] = React.useState(defaultValue || ''); const ref = React.useRef(null); const handleClickOutside = () => { setOpen(false); }; useOnClickOutside(ref as React.RefObject, handleClickOutside); const value = controlledValue !== undefined ? controlledValue : internalValue; const handleChange = onChange || setInternalValue; return ( // eslint-disable-next-line react/no-unstable-context-value
{children}
); }