|
import { forwardRef, useEffect, useImperativeHandle, useRef } from 'react'; |
|
|
|
export default forwardRef(function TextInput( |
|
{ type = 'text', className = '', isFocused = false, ...props }, |
|
ref, |
|
) { |
|
const localRef = useRef(null); |
|
|
|
useImperativeHandle(ref, () => ({ |
|
focus: () => localRef.current?.focus(), |
|
})); |
|
|
|
useEffect(() => { |
|
if (isFocused) { |
|
localRef.current?.focus(); |
|
} |
|
}, [isFocused]); |
|
|
|
return ( |
|
<input |
|
{...props} |
|
type={type} |
|
className={ |
|
'rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 ' + |
|
className |
|
} |
|
ref={localRef} |
|
/> |
|
); |
|
}); |
|
|