Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 32 33 34 35 36 37 38 39 40 41 42 | import { forwardRef, InputHTMLAttributes, useEffect, useImperativeHandle, useRef, } 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(); } }, [isFocused]); return ( <input {...props} type={type} className={ 'rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 dark:focus:border-indigo-600 dark:focus:ring-indigo-600 ' + className } ref={localRef} /> ); }); |