1
- // import { useCallback, useEffect, useState } from 'react';
1
+ import { useCallback , useEffect , useState } from 'react' ;
2
2
3
3
export function buildEnterKeyEvent ( onClick : ( ) => void ) {
4
4
return ( event : React . KeyboardEvent < HTMLInputElement > ) => {
@@ -8,48 +8,46 @@ export function buildEnterKeyEvent(onClick: () => void) {
8
8
} ;
9
9
}
10
10
11
- // TODO try deprecate this in favour of new settings menu https://github.com/leather-wallet/extension/pull/2732/files
12
-
13
- // let timer = 0;
14
-
15
- // export function useModifierKey(key: 'alt' | 'control', delay = 0) {
16
- // const [isPressed, setIsPressed] = useState(false);
17
-
18
- // const keydownFn = useCallback(
19
- // (event: KeyboardEvent) => {
20
- // if (key === 'alt' && event.altKey) {
21
- // timer = window.setTimeout(() => setIsPressed(true), delay);
22
- // }
23
- // if (key === 'control' && event.ctrlKey) {
24
- // timer = window.setTimeout(() => setIsPressed(true), delay);
25
- // }
26
- // },
27
- // [delay, key]
28
- // );
29
-
30
- // const keyupFn = useCallback(
31
- // (event: KeyboardEvent) => {
32
- // if (key === 'alt' && !event.altKey) {
33
- // clearTimeout(timer);
34
- // setIsPressed(false);
35
- // }
36
- // if (key === 'control' && !event.ctrlKey) {
37
- // clearTimeout(timer);
38
- // setIsPressed(false);
39
- // }
40
- // },
41
- // [key]
42
- // );
43
-
44
- // useEffect(() => {
45
- // document.addEventListener('keydown', keydownFn);
46
- // document.addEventListener('keyup', keyupFn);
47
- // return () => {
48
- // clearTimeout(timer);
49
- // document.removeEventListener('keydown', keydownFn);
50
- // document.removeEventListener('keyup', keyupFn);
51
- // };
52
- // }, [keydownFn, keyupFn]);
53
-
54
- // return { isPressed };
55
- // }
11
+ let timer = 0 ;
12
+
13
+ export function useModifierKey ( key : 'alt' | 'control' , delay = 0 ) {
14
+ const [ isPressed , setIsPressed ] = useState ( false ) ;
15
+
16
+ const keydownFn = useCallback (
17
+ ( event : KeyboardEvent ) => {
18
+ if ( key === 'alt' && event . altKey ) {
19
+ timer = window . setTimeout ( ( ) => setIsPressed ( true ) , delay ) ;
20
+ }
21
+ if ( key === 'control' && event . ctrlKey ) {
22
+ timer = window . setTimeout ( ( ) => setIsPressed ( true ) , delay ) ;
23
+ }
24
+ } ,
25
+ [ delay , key ]
26
+ ) ;
27
+
28
+ const keyupFn = useCallback (
29
+ ( event : KeyboardEvent ) => {
30
+ if ( key === 'alt' && ! event . altKey ) {
31
+ clearTimeout ( timer ) ;
32
+ setIsPressed ( false ) ;
33
+ }
34
+ if ( key === 'control' && ! event . ctrlKey ) {
35
+ clearTimeout ( timer ) ;
36
+ setIsPressed ( false ) ;
37
+ }
38
+ } ,
39
+ [ key ]
40
+ ) ;
41
+
42
+ useEffect ( ( ) => {
43
+ document . addEventListener ( 'keydown' , keydownFn ) ;
44
+ document . addEventListener ( 'keyup' , keyupFn ) ;
45
+ return ( ) => {
46
+ clearTimeout ( timer ) ;
47
+ document . removeEventListener ( 'keydown' , keydownFn ) ;
48
+ document . removeEventListener ( 'keyup' , keyupFn ) ;
49
+ } ;
50
+ } , [ keydownFn , keyupFn ] ) ;
51
+
52
+ return { isPressed } ;
53
+ }
0 commit comments