lan_kiosk/resources/js/Components/TextInput.tsx
Anna-Sara Sélea 47e16e7ca2 Breeze setup
2025-04-19 19:02:21 +02:00

41 lines
907 B
TypeScript

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 ' +
className
}
ref={localRef}
/>
);
});