File size: 746 Bytes
4f8c3bf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
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}
/>
);
});
|