feature/share-libs
tsx 23 lines 577 Bytes
Raw
1 import { useRef, type RefObject } from 'react'
2
3 export function useEnterSubmit(): {
4 formRef: RefObject<HTMLFormElement>
5 onKeyDown: (event: React.KeyboardEvent<HTMLTextAreaElement>) => void
6 } {
7 const formRef = useRef<HTMLFormElement>(null)
8
9 const handleKeyDown = (
10 event: React.KeyboardEvent<HTMLTextAreaElement>
11 ): void => {
12 if (
13 event.key === 'Enter' &&
14 !event.shiftKey &&
15 !event.nativeEvent.isComposing
16 ) {
17 formRef.current?.requestSubmit()
18 event.preventDefault()
19 }
20 }
21
22 return { formRef, onKeyDown: handleKeyDown }
23 }