Spaces:
Running
Running
File size: 586 Bytes
f80b091 3ba9c0c f80b091 3ba9c0c f80b091 3ba9c0c f80b091 3ba9c0c f80b091 3ba9c0c f80b091 3ba9c0c f80b091 3ba9c0c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import { useRef, type RefObject } from 'react';
export function useEnterSubmit(): {
formRef: RefObject<HTMLFormElement>;
onKeyDown: (event: React.KeyboardEvent<HTMLTextAreaElement>) => void;
} {
const formRef = useRef<HTMLFormElement>(null);
const handleKeyDown = (
event: React.KeyboardEvent<HTMLTextAreaElement>,
): void => {
if (
event.key === 'Enter' &&
!event.shiftKey &&
!event.nativeEvent.isComposing
) {
formRef.current?.requestSubmit();
event.preventDefault();
}
};
return { formRef, onKeyDown: handleKeyDown };
}
|