You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import { forwardRef, useEffect, useImperativeHandle, useRef, InputHTMLAttributes } from 'react';
export default forwardRef(function TextInput( { type = 'text', className = '', isFocused = false, ...props }: InputHTMLAttributes<HTMLInputElement> & { isFocused?: boolean }, ref ) { const localRef = useRef<HTMLInputElement>(null);
useImperativeHandle(ref, () => ({ focus: () => localRef.current?.focus(), }));
useEffect(() => { if (isFocused) { localRef.current?.focus(); } }, []);
return ( <input {...props} type={type} className={ 'border-gray-300 focus:border-indigo-500 focus:ring-indigo-500 rounded-md shadow-sm ' + className } ref={localRef} /> ); });
|