1 | import { useIsomorphicLayoutEffect } from 'ahooks';
|
2 | export default function useInputHandleKeyDown({
|
3 | onEnterPress,
|
4 | onKeyDown,
|
5 | nativeInputRef,
|
6 | enterKeyHint
|
7 | }) {
|
8 | const handleKeydown = e => {
|
9 | if (onEnterPress && (e.code === 'Enter' || e.keyCode === 13)) {
|
10 | onEnterPress(e);
|
11 | }
|
12 | onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
|
13 | };
|
14 | useIsomorphicLayoutEffect(() => {
|
15 | const ele = nativeInputRef.current;
|
16 | if (!enterKeyHint || !ele) return;
|
17 | ele.setAttribute('enterkeyhint', enterKeyHint);
|
18 | return () => {
|
19 | ele.removeAttribute('enterkeyhint');
|
20 | };
|
21 | }, [enterKeyHint]);
|
22 | return handleKeydown;
|
23 | } |
\ | No newline at end of file |