1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
1
import { emitter } from '@amatiasq/emitter' ;
4
2
5
3
const { isHidden, eventName } = getKeyNames ( ) ;
6
4
const emitVisibilityChange = emitter < boolean > ( ) ;
7
5
8
- type VisibilityChangeListener = Parameters < typeof emitVisibilityChange . subscribe > [ 0 ] ;
6
+ type VisibilityChangeListener = Parameters <
7
+ typeof emitVisibilityChange . subscribe
8
+ > [ 0 ] ;
9
9
10
10
document . addEventListener (
11
11
eventName ,
12
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
- // @ts -ignore
14
12
( ) => emitVisibilityChange ( ! document [ isHidden ] ) ,
15
13
false ,
16
14
) ;
@@ -29,21 +27,21 @@ function getKeyNames() {
29
27
return {
30
28
isHidden : 'hidden' ,
31
29
eventName : 'visibilitychange' ,
32
- } ;
30
+ } as const ;
33
31
}
34
32
35
33
if ( ( document as any ) . msHidden != null ) {
36
34
return {
37
- isHidden : 'msHidden' ,
38
- eventName : 'msvisibilitychange' ,
39
- } ;
35
+ isHidden : 'msHidden' as 'hidden' ,
36
+ eventName : 'msvisibilitychange' as 'visibilitychange' ,
37
+ } as const ;
40
38
}
41
39
42
40
if ( ( document as any ) . webkitHidden != null ) {
43
41
return {
44
- isHidden : 'webkitHidden' ,
45
- eventName : 'webkitvisibilitychange' ,
46
- } ;
42
+ isHidden : 'webkitHidden' as 'hidden' ,
43
+ eventName : 'webkitvisibilitychange' as 'visibilitychange' ,
44
+ } as const ;
47
45
}
48
46
49
47
throw unsupportedBrowser ( ) ;
0 commit comments