1
1
import { ref , Ref } from "../api" ;
2
2
import { FALSE_OP , isClient } from "../utils" ;
3
3
4
- declare global {
5
- interface NavigatorShareData {
6
- url : string ;
7
- text : string ;
8
- title : string ;
9
- }
4
+ interface NavigatorShareData {
5
+ url : string ;
6
+ text : string ;
7
+ title : string ;
8
+ }
10
9
11
- interface Navigator {
12
- share : ( data : Partial < NavigatorShareData > ) => Promise < any > ;
13
- canShare : ( data : Partial < NavigatorShareData > ) => boolean ;
14
- }
10
+ interface NavigatorShareDefinition {
11
+ share : ( data : Partial < NavigatorShareData > ) => Promise < any > ;
12
+ canShare : ( data : Partial < NavigatorShareData > ) => boolean ;
13
+ }
14
+
15
+ declare global {
16
+ interface Navigator extends NavigatorShareDefinition { }
15
17
}
16
18
17
19
interface ShareReturn {
@@ -34,11 +36,11 @@ interface ShareReturn {
34
36
/**
35
37
* Share information with user
36
38
*/
37
- share : Navigator [ "share" ] ;
39
+ share : NavigatorShareDefinition [ "share" ] ;
38
40
/**
39
41
* Check if you can share with user
40
42
*/
41
- canShare : Navigator [ "canShare" ] ;
43
+ canShare : NavigatorShareDefinition [ "canShare" ] ;
42
44
}
43
45
44
46
/**
@@ -49,8 +51,8 @@ interface ShareReturn {
49
51
export function useShare ( data ?: Partial < NavigatorShareData > ) : ShareReturn {
50
52
const supported = isClient && "share" in navigator ;
51
53
52
- let share : Navigator [ "share" ] = ( ) => Promise . resolve ( false ) ;
53
- let canShare : Navigator [ "canShare" ] = FALSE_OP ;
54
+ let share : NavigatorShareDefinition [ "share" ] = ( ) => Promise . resolve ( false ) ;
55
+ let canShare : NavigatorShareDefinition [ "canShare" ] = FALSE_OP ;
54
56
let shared = ref ( false ) ;
55
57
let cancelled = ref ( false ) ;
56
58
0 commit comments