expo-router 3.4.7 → 3.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/build/global-state/router-store.d.ts +3 -0
  2. package/build/global-state/router-store.d.ts.map +1 -1
  3. package/build/global-state/router-store.js +3 -0
  4. package/build/global-state/router-store.js.map +1 -1
  5. package/build/global-state/routing.d.ts +3 -0
  6. package/build/global-state/routing.d.ts.map +1 -1
  7. package/build/global-state/routing.js +24 -1
  8. package/build/global-state/routing.js.map +1 -1
  9. package/build/hooks.d.ts.map +1 -1
  10. package/build/hooks.js +3 -0
  11. package/build/hooks.js.map +1 -1
  12. package/build/imperative-api.d.ts.map +1 -1
  13. package/build/imperative-api.js +3 -0
  14. package/build/imperative-api.js.map +1 -1
  15. package/build/layouts/Drawer.d.ts +40 -40
  16. package/build/layouts/Stack.d.ts +48 -48
  17. package/build/layouts/Tabs.d.ts +48 -48
  18. package/build/link/useLoadedNavigation.d.ts.map +1 -1
  19. package/build/link/useLoadedNavigation.js +1 -0
  20. package/build/link/useLoadedNavigation.js.map +1 -1
  21. package/build/testing-library/context-stubs.d.ts +1 -1
  22. package/build/testing-library/context-stubs.d.ts.map +1 -1
  23. package/build/testing-library/context-stubs.js +7 -2
  24. package/build/testing-library/context-stubs.js.map +1 -1
  25. package/build/testing-library/index.d.ts +8 -4
  26. package/build/testing-library/index.d.ts.map +1 -1
  27. package/build/testing-library/index.js +23 -12
  28. package/build/testing-library/index.js.map +1 -1
  29. package/build/testing-library/mocks.d.ts +0 -1
  30. package/build/testing-library/mocks.d.ts.map +1 -1
  31. package/build/testing-library/mocks.js +7 -1
  32. package/build/testing-library/mocks.js.map +1 -1
  33. package/build/types.d.ts +7 -1
  34. package/build/types.d.ts.map +1 -1
  35. package/build/types.js.map +1 -1
  36. package/package.json +3 -3
  37. package/build/utils/mockState.d.ts +0 -7
  38. package/build/utils/mockState.d.ts.map +0 -1
  39. package/build/utils/mockState.js +0 -29
  40. package/build/utils/mockState.js.map +0 -1
@@ -5,22 +5,22 @@ export declare const Stack: import("react").ForwardRefExoticComponent<Omit<Omit<
5
5
  id?: string | undefined;
6
6
  children: import("react").ReactNode;
7
7
  screenListeners?: Partial<{
8
- transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionStart">;
9
- transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionEnd">;
10
- focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "focus">;
11
- blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "blur">;
12
- state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "state">;
13
- beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "beforeRemove">;
8
+ transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart">;
9
+ transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd">;
10
+ focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus">;
11
+ blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur">;
12
+ state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state">;
13
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove">;
14
14
  }> | ((props: {
15
15
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
16
16
  navigation: any;
17
17
  }) => Partial<{
18
- transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionStart">;
19
- transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionEnd">;
20
- focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "focus">;
21
- blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "blur">;
22
- state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "state">;
23
- beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "beforeRemove">;
18
+ transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart">;
19
+ transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd">;
20
+ focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus">;
21
+ blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur">;
22
+ state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state">;
23
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove">;
24
24
  }>) | undefined;
25
25
  screenOptions?: NativeStackNavigationOptions | ((props: {
26
26
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
@@ -30,22 +30,22 @@ export declare const Stack: import("react").ForwardRefExoticComponent<Omit<Omit<
30
30
  id?: string | undefined;
31
31
  children: import("react").ReactNode;
32
32
  screenListeners?: Partial<{
33
- transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionStart">;
34
- transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionEnd">;
35
- focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "focus">;
36
- blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "blur">;
37
- state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "state">;
38
- beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "beforeRemove">;
33
+ transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart">;
34
+ transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd">;
35
+ focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus">;
36
+ blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur">;
37
+ state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state">;
38
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove">;
39
39
  }> | ((props: {
40
40
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
41
41
  navigation: any;
42
42
  }) => Partial<{
43
- transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionStart">;
44
- transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionEnd">;
45
- focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "focus">;
46
- blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "blur">;
47
- state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "state">;
48
- beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "beforeRemove">;
43
+ transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart">;
44
+ transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd">;
45
+ focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus">;
46
+ blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur">;
47
+ state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state">;
48
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove">;
49
49
  }>) | undefined;
50
50
  screenOptions?: NativeStackNavigationOptions | ((props: {
51
51
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
@@ -55,22 +55,22 @@ export declare const Stack: import("react").ForwardRefExoticComponent<Omit<Omit<
55
55
  id?: string | undefined;
56
56
  children: import("react").ReactNode;
57
57
  screenListeners?: Partial<{
58
- transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionStart">;
59
- transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionEnd">;
60
- focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "focus">;
61
- blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "blur">;
62
- state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "state">;
63
- beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "beforeRemove">;
58
+ transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart">;
59
+ transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd">;
60
+ focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus">;
61
+ blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur">;
62
+ state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state">;
63
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove">;
64
64
  }> | ((props: {
65
65
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
66
66
  navigation: any;
67
67
  }) => Partial<{
68
- transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionStart">;
69
- transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionEnd">;
70
- focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "focus">;
71
- blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "blur">;
72
- state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "state">;
73
- beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "beforeRemove">;
68
+ transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart">;
69
+ transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd">;
70
+ focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus">;
71
+ blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur">;
72
+ state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state">;
73
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove">;
74
74
  }>) | undefined;
75
75
  screenOptions?: NativeStackNavigationOptions | ((props: {
76
76
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
@@ -80,22 +80,22 @@ export declare const Stack: import("react").ForwardRefExoticComponent<Omit<Omit<
80
80
  id?: string | undefined;
81
81
  children: import("react").ReactNode;
82
82
  screenListeners?: Partial<{
83
- transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionStart">;
84
- transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionEnd">;
85
- focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "focus">;
86
- blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "blur">;
87
- state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "state">;
88
- beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "beforeRemove">;
83
+ transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart">;
84
+ transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd">;
85
+ focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus">;
86
+ blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur">;
87
+ state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state">;
88
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove">;
89
89
  }> | ((props: {
90
90
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
91
91
  navigation: any;
92
92
  }) => Partial<{
93
- transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionStart">;
94
- transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "transitionEnd">;
95
- focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "focus">;
96
- blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "blur">;
97
- state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "state">;
98
- beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap, "beforeRemove">;
93
+ transitionStart: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionStart">;
94
+ transitionEnd: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "transitionEnd">;
95
+ focus: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "focus">;
96
+ blur: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "blur">;
97
+ state: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "state">;
98
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<NativeStackNavigationEventMap & import("@react-navigation/native").EventMapCore<StackNavigationState<ParamListBase>>, "beforeRemove">;
99
99
  }>) | undefined;
100
100
  screenOptions?: NativeStackNavigationOptions | ((props: {
101
101
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
@@ -6,22 +6,22 @@ export declare const Tabs: React.ForwardRefExoticComponent<Omit<Omit<import("@re
6
6
  id?: string | undefined;
7
7
  children: React.ReactNode;
8
8
  screenListeners?: Partial<{
9
- tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabPress">;
10
- tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabLongPress">;
11
- focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "focus">;
12
- blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "blur">;
13
- state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "state">;
14
- beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "beforeRemove">;
9
+ tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabPress">;
10
+ tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabLongPress">;
11
+ focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "focus">;
12
+ blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "blur">;
13
+ state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "state">;
14
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "beforeRemove">;
15
15
  }> | ((props: {
16
16
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
17
17
  navigation: any;
18
18
  }) => Partial<{
19
- tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabPress">;
20
- tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabLongPress">;
21
- focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "focus">;
22
- blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "blur">;
23
- state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "state">;
24
- beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "beforeRemove">;
19
+ tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabPress">;
20
+ tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabLongPress">;
21
+ focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "focus">;
22
+ blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "blur">;
23
+ state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "state">;
24
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "beforeRemove">;
25
25
  }>) | undefined;
26
26
  screenOptions?: BottomTabNavigationOptions | ((props: {
27
27
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
@@ -33,22 +33,22 @@ export declare const Tabs: React.ForwardRefExoticComponent<Omit<Omit<import("@re
33
33
  id?: string | undefined;
34
34
  children: React.ReactNode;
35
35
  screenListeners?: Partial<{
36
- tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabPress">;
37
- tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabLongPress">;
38
- focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "focus">;
39
- blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "blur">;
40
- state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "state">;
41
- beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "beforeRemove">;
36
+ tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabPress">;
37
+ tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabLongPress">;
38
+ focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "focus">;
39
+ blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "blur">;
40
+ state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "state">;
41
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "beforeRemove">;
42
42
  }> | ((props: {
43
43
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
44
44
  navigation: any;
45
45
  }) => Partial<{
46
- tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabPress">;
47
- tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabLongPress">;
48
- focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "focus">;
49
- blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "blur">;
50
- state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "state">;
51
- beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "beforeRemove">;
46
+ tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabPress">;
47
+ tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabLongPress">;
48
+ focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "focus">;
49
+ blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "blur">;
50
+ state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "state">;
51
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "beforeRemove">;
52
52
  }>) | undefined;
53
53
  screenOptions?: BottomTabNavigationOptions | ((props: {
54
54
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
@@ -58,22 +58,22 @@ export declare const Tabs: React.ForwardRefExoticComponent<Omit<Omit<import("@re
58
58
  id?: string | undefined;
59
59
  children: React.ReactNode;
60
60
  screenListeners?: Partial<{
61
- tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabPress">;
62
- tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabLongPress">;
63
- focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "focus">;
64
- blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "blur">;
65
- state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "state">;
66
- beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "beforeRemove">;
61
+ tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabPress">;
62
+ tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabLongPress">;
63
+ focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "focus">;
64
+ blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "blur">;
65
+ state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "state">;
66
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "beforeRemove">;
67
67
  }> | ((props: {
68
68
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
69
69
  navigation: any;
70
70
  }) => Partial<{
71
- tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabPress">;
72
- tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabLongPress">;
73
- focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "focus">;
74
- blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "blur">;
75
- state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "state">;
76
- beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "beforeRemove">;
71
+ tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabPress">;
72
+ tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabLongPress">;
73
+ focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "focus">;
74
+ blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "blur">;
75
+ state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "state">;
76
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "beforeRemove">;
77
77
  }>) | undefined;
78
78
  screenOptions?: BottomTabNavigationOptions | ((props: {
79
79
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
@@ -85,22 +85,22 @@ export declare const Tabs: React.ForwardRefExoticComponent<Omit<Omit<import("@re
85
85
  id?: string | undefined;
86
86
  children: React.ReactNode;
87
87
  screenListeners?: Partial<{
88
- tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabPress">;
89
- tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabLongPress">;
90
- focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "focus">;
91
- blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "blur">;
92
- state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "state">;
93
- beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "beforeRemove">;
88
+ tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabPress">;
89
+ tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabLongPress">;
90
+ focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "focus">;
91
+ blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "blur">;
92
+ state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "state">;
93
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "beforeRemove">;
94
94
  }> | ((props: {
95
95
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
96
96
  navigation: any;
97
97
  }) => Partial<{
98
- tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabPress">;
99
- tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "tabLongPress">;
100
- focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "focus">;
101
- blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "blur">;
102
- state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "state">;
103
- beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap, "beforeRemove">;
98
+ tabPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabPress">;
99
+ tabLongPress: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "tabLongPress">;
100
+ focus: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "focus">;
101
+ blur: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "blur">;
102
+ state: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "state">;
103
+ beforeRemove: import("@react-navigation/native").EventListenerCallback<BottomTabNavigationEventMap & import("@react-navigation/native").EventMapCore<TabNavigationState<ParamListBase>>, "beforeRemove">;
104
104
  }>) | undefined;
105
105
  screenOptions?: BottomTabNavigationOptions | ((props: {
106
106
  route: import("@react-navigation/native").RouteProp<ParamListBase, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadedNavigation.d.ts","sourceRoot":"","sources":["../../src/link/useLoadedNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,0BAA0B,CAAC;AAKzE,KAAK,iBAAiB,GAAG,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AAEvE,gFAAgF;AAChF,wBAAgB,mBAAmB,sBA8Bb,iBAAiB,KAAK,IAAI,UAU/C;AAED,wBAAgB,qBAAqB,IAAI,iBAAiB,GAAG,IAAI,CAShE"}
1
+ {"version":3,"file":"useLoadedNavigation.d.ts","sourceRoot":"","sources":["../../src/link/useLoadedNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,0BAA0B,CAAC;AAKzE,KAAK,iBAAiB,GAAG,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AAEvE,gFAAgF;AAChF,wBAAgB,mBAAmB,sBA+Bb,iBAAiB,KAAK,IAAI,UAU/C;AAED,wBAAgB,qBAAqB,IAAI,iBAAiB,GAAG,IAAI,CAShE"}
@@ -21,6 +21,7 @@ function useLoadedNavigation() {
21
21
  const pendingCallbacks = pending.current;
22
22
  pending.current = [];
23
23
  pendingCallbacks.forEach((callback) => {
24
+ // @ts-ignore
24
25
  callback(navigation);
25
26
  });
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadedNavigation.js","sourceRoot":"","sources":["../../src/link/useLoadedNavigation.ts"],"names":[],"mappings":";;;AAAA,qDAAyE;AACzE,iCAAiE;AAEjE,+DAA6D;AAI7D,gFAAgF;AAChF,SAAgB,mBAAmB;IACjC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,4BAAa,GAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAA,sBAAa,GAAE,CAAC;IACnC,MAAM,SAAS,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,cAAM,EAA8C,EAAE,CAAC,CAAC;IAExE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC7B,IAAI,SAAS,CAAC,OAAO,EAAE;YACrB,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;YACzC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;YACrB,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,KAAK,EAAE,CAAC;SACT;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,IAAI,GAAG,IAAA,mBAAW,EACtB,CAAC,EAA2C,EAAE,EAAE;QAC9C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,KAAK,EAAE,CAAC;SACT;IACH,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAxCD,kDAwCC;AAED,SAAgB,qBAAqB;IACnC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAA2B,IAAI,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,mBAAmB,EAAE,CAAC;IAE7C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,UAAU,CAAC;AACpB,CAAC;AATD,sDASC","sourcesContent":["import { NavigationProp, useNavigation } from '@react-navigation/native';\nimport { useCallback, useState, useEffect, useRef } from 'react';\n\nimport { useExpoRouter } from '../global-state/router-store';\n\ntype GenericNavigation = NavigationProp<ReactNavigation.RootParamList>;\n\n/** Returns a callback which is invoked when the navigation state has loaded. */\nexport function useLoadedNavigation() {\n const { navigationRef } = useExpoRouter();\n const navigation = useNavigation();\n const isMounted = useRef(true);\n const pending = useRef<((navigation: GenericNavigation) => void)[]>([]);\n\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n const flush = useCallback(() => {\n if (isMounted.current) {\n const pendingCallbacks = pending.current;\n pending.current = [];\n pendingCallbacks.forEach((callback) => {\n callback(navigation);\n });\n }\n }, [navigation]);\n\n useEffect(() => {\n if (navigationRef.current) {\n flush();\n }\n }, [flush]);\n\n const push = useCallback(\n (fn: (navigation: GenericNavigation) => void) => {\n pending.current.push(fn);\n if (navigationRef.current) {\n flush();\n }\n },\n [flush]\n );\n\n return push;\n}\n\nexport function useOptionalNavigation(): GenericNavigation | null {\n const [navigation, setNavigation] = useState<GenericNavigation | null>(null);\n const loadNavigation = useLoadedNavigation();\n\n useEffect(() => {\n loadNavigation((nav) => setNavigation(nav));\n }, []);\n\n return navigation;\n}\n"]}
1
+ {"version":3,"file":"useLoadedNavigation.js","sourceRoot":"","sources":["../../src/link/useLoadedNavigation.ts"],"names":[],"mappings":";;;AAAA,qDAAyE;AACzE,iCAAiE;AAEjE,+DAA6D;AAI7D,gFAAgF;AAChF,SAAgB,mBAAmB;IACjC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,4BAAa,GAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAA,sBAAa,GAAE,CAAC;IACnC,MAAM,SAAS,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,cAAM,EAA8C,EAAE,CAAC,CAAC;IAExE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC7B,IAAI,SAAS,CAAC,OAAO,EAAE;YACrB,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;YACzC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;YACrB,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpC,aAAa;gBACb,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,KAAK,EAAE,CAAC;SACT;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,IAAI,GAAG,IAAA,mBAAW,EACtB,CAAC,EAA2C,EAAE,EAAE;QAC9C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,KAAK,EAAE,CAAC;SACT;IACH,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAzCD,kDAyCC;AAED,SAAgB,qBAAqB;IACnC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAA2B,IAAI,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,mBAAmB,EAAE,CAAC;IAE7C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,UAAU,CAAC;AACpB,CAAC;AATD,sDASC","sourcesContent":["import { NavigationProp, useNavigation } from '@react-navigation/native';\nimport { useCallback, useState, useEffect, useRef } from 'react';\n\nimport { useExpoRouter } from '../global-state/router-store';\n\ntype GenericNavigation = NavigationProp<ReactNavigation.RootParamList>;\n\n/** Returns a callback which is invoked when the navigation state has loaded. */\nexport function useLoadedNavigation() {\n const { navigationRef } = useExpoRouter();\n const navigation = useNavigation();\n const isMounted = useRef(true);\n const pending = useRef<((navigation: GenericNavigation) => void)[]>([]);\n\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n const flush = useCallback(() => {\n if (isMounted.current) {\n const pendingCallbacks = pending.current;\n pending.current = [];\n pendingCallbacks.forEach((callback) => {\n // @ts-ignore\n callback(navigation);\n });\n }\n }, [navigation]);\n\n useEffect(() => {\n if (navigationRef.current) {\n flush();\n }\n }, [flush]);\n\n const push = useCallback(\n (fn: (navigation: GenericNavigation) => void) => {\n pending.current.push(fn);\n if (navigationRef.current) {\n flush();\n }\n },\n [flush]\n );\n\n return push;\n}\n\nexport function useOptionalNavigation(): GenericNavigation | null {\n const [navigation, setNavigation] = useState<GenericNavigation | null>(null);\n const loadNavigation = useLoadedNavigation();\n\n useEffect(() => {\n loadNavigation((nav) => setNavigation(nav));\n }, []);\n\n return navigation;\n}\n"]}
@@ -12,9 +12,9 @@ export declare function inMemoryContext(context: Record<string, FileStub>): ((id
12
12
  }) | {
13
13
  default: FileStub;
14
14
  }) & {
15
- keys: () => string[];
16
15
  resolve: (key: string) => string;
17
16
  id: string;
17
+ keys: () => string[];
18
18
  };
19
19
  export declare function requireContextWithOverrides(dir: string, overrides: Record<string, FileStub>): ((id: string) => any) & {
20
20
  keys: () => string[];
@@ -1 +1 @@
1
- {"version":3,"file":"context-stubs.d.ts","sourceRoot":"","sources":["../../src/testing-library/context-stubs.ts"],"names":[],"mappings":";AAEA,OAAO,cAAc,MAAM,4BAA4B,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AACvE,MAAM,MAAM,QAAQ,GAChB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACzC,CAAC,GACF,cAAc,CAAC;AAEnB,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,SAE/C,MAAM;;;;;;;mBAMH,MAAM;;EAI1B;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,SAI1E,MAAM;;mBAUH,MAAM;;EAI1B"}
1
+ {"version":3,"file":"context-stubs.d.ts","sourceRoot":"","sources":["../../src/testing-library/context-stubs.ts"],"names":[],"mappings":";AAEA,OAAO,cAAc,MAAM,4BAA4B,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AACvE,MAAM,MAAM,QAAQ,GAChB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACzC,CAAC,GACF,cAAc,CAAC;AAEnB,OAAO,EAAE,cAAc,EAAE,CAAC;AAI1B,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,SAE/C,MAAM;;;;;;mBAKH,MAAM;;;EAU1B;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,SAI1E,MAAM;;mBAUH,MAAM;;EAI1B"}
@@ -7,14 +7,19 @@ exports.requireContextWithOverrides = exports.inMemoryContext = exports.requireC
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const require_context_ponyfill_1 = __importDefault(require("./require-context-ponyfill"));
9
9
  exports.requireContext = require_context_ponyfill_1.default;
10
+ const validExtensions = ['.js', '.jsx', '.ts', '.tsx'];
10
11
  function inMemoryContext(context) {
11
12
  return Object.assign(function (id) {
12
- id = id.replace(/^\.\//, '').replace(/\.js$/, '');
13
+ id = id.replace(/^\.\//, '').replace(/\.\w*$/, '');
13
14
  return typeof context[id] === 'function' ? { default: context[id] } : context[id];
14
15
  }, {
15
- keys: () => Object.keys(context).map((key) => './' + key + '.js'),
16
16
  resolve: (key) => key,
17
17
  id: '0',
18
+ keys: () => Object.keys(context).map((key) => {
19
+ const ext = path_1.default.extname(key);
20
+ key = key.replace(/^\.\//, '');
21
+ return validExtensions.includes(ext) ? `./${key}` : `./${key}.js`;
22
+ }),
18
23
  });
19
24
  }
20
25
  exports.inMemoryContext = inMemoryContext;
@@ -1 +1 @@
1
- {"version":3,"file":"context-stubs.js","sourceRoot":"","sources":["../../src/testing-library/context-stubs.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,0FAAwD;AAU/C,yBAVF,kCAAc,CAUE;AAEvB,SAAgB,eAAe,CAAC,OAAiC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAClB,UAAU,EAAU;QAClB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,OAAO,OAAO,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC,EACD;QACE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;QACjE,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC7B,EAAE,EAAE,GAAG;KACR,CACF,CAAC;AACJ,CAAC;AAZD,0CAYC;AAED,SAAgB,2BAA2B,CAAC,GAAW,EAAE,SAAmC;IAC1F,MAAM,eAAe,GAAG,IAAA,kCAAc,EAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAEzE,OAAO,MAAM,CAAC,MAAM,CAClB,UAAU,EAAU;QAClB,IAAI,EAAE,IAAI,SAAS,EAAE;YACnB,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5B,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACjE;aAAM;YACL,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC;SAC5B;IACH,CAAC,EACD;QACE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;QAClE,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC7B,EAAE,EAAE,GAAG;KACR,CACF,CAAC;AACJ,CAAC;AAlBD,kEAkBC","sourcesContent":["import path from 'path';\n\nimport requireContext from './require-context-ponyfill';\n\nexport type ReactComponent = () => React.ReactElement<any, any> | null;\nexport type FileStub =\n | (Record<string, unknown> & {\n default: ReactComponent;\n unstable_settings?: Record<string, any>;\n })\n | ReactComponent;\n\nexport { requireContext };\n\nexport function inMemoryContext(context: Record<string, FileStub>) {\n return Object.assign(\n function (id: string) {\n id = id.replace(/^\\.\\//, '').replace(/\\.js$/, '');\n return typeof context[id] === 'function' ? { default: context[id] } : context[id];\n },\n {\n keys: () => Object.keys(context).map((key) => './' + key + '.js'),\n resolve: (key: string) => key,\n id: '0',\n }\n );\n}\n\nexport function requireContextWithOverrides(dir: string, overrides: Record<string, FileStub>) {\n const existingContext = requireContext(path.resolve(process.cwd(), dir));\n\n return Object.assign(\n function (id: string) {\n if (id in overrides) {\n const route = overrides[id];\n return typeof route === 'function' ? { default: route } : route;\n } else {\n return existingContext(id);\n }\n },\n {\n keys: () => [...Object.keys(overrides), ...existingContext.keys()],\n resolve: (key: string) => key,\n id: '0',\n }\n );\n}\n"]}
1
+ {"version":3,"file":"context-stubs.js","sourceRoot":"","sources":["../../src/testing-library/context-stubs.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,0FAAwD;AAU/C,yBAVF,kCAAc,CAUE;AAEvB,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEvD,SAAgB,eAAe,CAAC,OAAiC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAClB,UAAU,EAAU;QAClB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,OAAO,OAAO,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC,EACD;QACE,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC7B,EAAE,EAAE,GAAG;QACP,IAAI,EAAE,GAAG,EAAE,CACT,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC/B,OAAO,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QACpE,CAAC,CAAC;KACL,CACF,CAAC;AACJ,CAAC;AAjBD,0CAiBC;AAED,SAAgB,2BAA2B,CAAC,GAAW,EAAE,SAAmC;IAC1F,MAAM,eAAe,GAAG,IAAA,kCAAc,EAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAEzE,OAAO,MAAM,CAAC,MAAM,CAClB,UAAU,EAAU;QAClB,IAAI,EAAE,IAAI,SAAS,EAAE;YACnB,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5B,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACjE;aAAM;YACL,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC;SAC5B;IACH,CAAC,EACD;QACE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;QAClE,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG;QAC7B,EAAE,EAAE,GAAG;KACR,CACF,CAAC;AACJ,CAAC;AAlBD,kEAkBC","sourcesContent":["import path from 'path';\n\nimport requireContext from './require-context-ponyfill';\n\nexport type ReactComponent = () => React.ReactElement<any, any> | null;\nexport type FileStub =\n | (Record<string, unknown> & {\n default: ReactComponent;\n unstable_settings?: Record<string, any>;\n })\n | ReactComponent;\n\nexport { requireContext };\n\nconst validExtensions = ['.js', '.jsx', '.ts', '.tsx'];\n\nexport function inMemoryContext(context: Record<string, FileStub>) {\n return Object.assign(\n function (id: string) {\n id = id.replace(/^\\.\\//, '').replace(/\\.\\w*$/, '');\n return typeof context[id] === 'function' ? { default: context[id] } : context[id];\n },\n {\n resolve: (key: string) => key,\n id: '0',\n keys: () =>\n Object.keys(context).map((key) => {\n const ext = path.extname(key);\n key = key.replace(/^\\.\\//, '');\n return validExtensions.includes(ext) ? `./${key}` : `./${key}.js`;\n }),\n }\n );\n}\n\nexport function requireContextWithOverrides(dir: string, overrides: Record<string, FileStub>) {\n const existingContext = requireContext(path.resolve(process.cwd(), dir));\n\n return Object.assign(\n function (id: string) {\n if (id in overrides) {\n const route = overrides[id];\n return typeof route === 'function' ? { default: route } : route;\n } else {\n return existingContext(id);\n }\n },\n {\n keys: () => [...Object.keys(overrides), ...existingContext.keys()],\n resolve: (key: string) => key,\n id: '0',\n }\n );\n}\n"]}
@@ -11,10 +11,14 @@ type Result = ReturnType<typeof render> & {
11
11
  getSegments(): string[];
12
12
  getSearchParams(): Record<string, string | string[]>;
13
13
  };
14
- export declare function renderRouter(context?: string, options?: RenderRouterOptions): Result;
15
- export declare function renderRouter(context: Record<string, FileStub>, options?: RenderRouterOptions): Result;
16
- export declare function renderRouter(context: {
14
+ export type MockContextConfig = string | string[] | Record<string, FileStub> | {
17
15
  appDir: string;
18
16
  overrides: Record<string, FileStub>;
19
- }, options?: RenderRouterOptions): Result;
17
+ };
18
+ export declare function getMockConfig(context: MockContextConfig): {
19
+ initialRouteName?: string | undefined;
20
+ screens: Record<string, import("../getReactNavigationConfig").Screen>;
21
+ };
22
+ export declare function getMockContext(context: MockContextConfig): import("../types").RequireContext;
23
+ export declare function renderRouter(context?: MockContextConfig, { initialUrl, ...options }?: RenderRouterOptions): Result;
20
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing-library/index.tsx"],"names":[],"mappings":"AACA,OAAO,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAgB,MAAM,+BAA+B,CAAC;AAIrE,OAAO,EACL,QAAQ,EAIT,MAAM,iBAAiB,CAAC;AASzB,cAAc,+BAA+B,CAAC;AAE9C,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;IACxD,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,CAAC;AAEF,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,GAAG;IACxC,WAAW,IAAI,MAAM,CAAC;IACtB,qBAAqB,IAAI,MAAM,CAAC;IAChC,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;CACtD,CAAC;AAQF,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;AACtF,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACjC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CAAC;AACV,wBAAgB,YAAY,CAC1B,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,EAChE,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing-library/index.tsx"],"names":[],"mappings":"AACA,OAAO,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAgB,MAAM,+BAA+B,CAAC;AAIrE,OAAO,EACL,QAAQ,EAIT,MAAM,iBAAiB,CAAC;AASzB,cAAc,+BAA+B,CAAC;AAE9C,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;IACxD,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,CAAC;AAEF,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,GAAG;IACxC,WAAW,IAAI,MAAM,CAAC;IACtB,qBAAqB,IAAI,MAAM,CAAC;IAChC,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;CACtD,CAAC;AAQF,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,MAAM,EAAE,GACR,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GACxB;IAEE,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACrC,CAAC;AAEN,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB;;;EAEvD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,qCAYxD;AAED,wBAAgB,YAAY,CAC1B,OAAO,GAAE,iBAA2B,EACpC,EAAE,UAAgB,EAAE,GAAG,OAAO,EAAE,GAAE,mBAAwB,GACzD,MAAM,CAsCR"}
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.renderRouter = void 0;
20
+ exports.renderRouter = exports.getMockContext = exports.getMockConfig = void 0;
21
21
  /// <reference types="../../types/jest" />
22
22
  require("./expect");
23
23
  const react_native_1 = require("@testing-library/react-native");
@@ -28,28 +28,39 @@ const mocks_1 = require("./mocks");
28
28
  const ExpoRoot_1 = require("../ExpoRoot");
29
29
  const getPathFromState_1 = __importDefault(require("../fork/getPathFromState"));
30
30
  const getLinkingConfig_1 = require("../getLinkingConfig");
31
+ const getRoutes_1 = require("../getRoutes");
31
32
  const router_store_1 = require("../global-state/router-store");
32
33
  // re-export everything
33
34
  __exportStar(require("@testing-library/react-native"), exports);
34
35
  function isOverrideContext(context) {
35
36
  return Boolean(typeof context === 'object' && 'appDir' in context);
36
37
  }
37
- function renderRouter(context = './app', { initialUrl = '/', ...options } = {}) {
38
- jest.useFakeTimers();
39
- let ctx;
40
- // Reset the initial URL
41
- (0, mocks_1.setInitialUrl)(initialUrl);
42
- // Force the render to be synchronous
43
- process.env.EXPO_ROUTER_IMPORT_MODE = 'sync';
38
+ function getMockConfig(context) {
39
+ return (0, getLinkingConfig_1.getNavigationConfig)((0, getRoutes_1.getExactRoutes)(getMockContext(context)));
40
+ }
41
+ exports.getMockConfig = getMockConfig;
42
+ function getMockContext(context) {
44
43
  if (typeof context === 'string') {
45
- ctx = (0, context_stubs_1.requireContext)(path_1.default.resolve(process.cwd(), context));
44
+ return (0, context_stubs_1.requireContext)(path_1.default.resolve(process.cwd(), context));
45
+ }
46
+ else if (Array.isArray(context)) {
47
+ return (0, context_stubs_1.inMemoryContext)(Object.fromEntries(context.map((filename) => [filename, { default: () => null }])));
46
48
  }
47
49
  else if (isOverrideContext(context)) {
48
- ctx = (0, context_stubs_1.requireContextWithOverrides)(context.appDir, context.overrides);
50
+ return (0, context_stubs_1.requireContextWithOverrides)(context.appDir, context.overrides);
49
51
  }
50
52
  else {
51
- ctx = (0, context_stubs_1.inMemoryContext)(context);
53
+ return (0, context_stubs_1.inMemoryContext)(context);
52
54
  }
55
+ }
56
+ exports.getMockContext = getMockContext;
57
+ function renderRouter(context = './app', { initialUrl = '/', ...options } = {}) {
58
+ jest.useFakeTimers();
59
+ const mockContext = getMockContext(context);
60
+ // Reset the initial URL
61
+ (0, mocks_1.setInitialUrl)(initialUrl);
62
+ // Force the render to be synchronous
63
+ process.env.EXPO_ROUTER_IMPORT_MODE = 'sync';
53
64
  getLinkingConfig_1.stateCache.clear();
54
65
  let location;
55
66
  if (typeof initialUrl === 'string') {
@@ -58,7 +69,7 @@ function renderRouter(context = './app', { initialUrl = '/', ...options } = {})
58
69
  else if (initialUrl instanceof URL) {
59
70
  location = initialUrl;
60
71
  }
61
- const result = (0, react_native_1.render)(<ExpoRoot_1.ExpoRoot context={ctx} location={location}/>, {
72
+ const result = (0, react_native_1.render)(<ExpoRoot_1.ExpoRoot context={mockContext} location={location}/>, {
62
73
  ...options,
63
74
  });
64
75
  return Object.assign(result, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing-library/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,oBAAkB;AAElB,gEAAqE;AACrE,gDAAwB;AACxB,kDAA0B;AAE1B,mDAKyB;AACzB,mCAAwC;AACxC,0CAAuC;AACvC,gFAAwD;AACxD,0DAAiD;AACjD,+DAAqD;AAGrD,uBAAuB;AACvB,gEAA8C;AAa9C,SAAS,iBAAiB,CACxB,OAAe;IAEf,OAAO,OAAO,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC;AACrE,CAAC;AAWD,SAAgB,YAAY,CAC1B,UAG+B,OAAO,EACtC,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,OAAO,KAA0B,EAAE;IAE1D,IAAI,CAAC,aAAa,EAAE,CAAC;IAErB,IAAI,GAAmB,CAAC;IAExB,wBAAwB;IAExB,IAAA,qBAAa,EAAC,UAAU,CAAC,CAAC;IAE1B,qCAAqC;IACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,MAAM,CAAC;IAE7C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,GAAG,GAAG,IAAA,8BAAc,EAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;KAC5D;SAAM,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE;QACrC,GAAG,GAAG,IAAA,2CAA2B,EAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;KACtE;SAAM;QACL,GAAG,GAAG,IAAA,+BAAe,EAAC,OAAO,CAAC,CAAC;KAChC;IAED,6BAAU,CAAC,KAAK,EAAE,CAAC;IAEnB,IAAI,QAAyB,CAAC;IAE9B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;KAC3C;SAAM,IAAI,UAAU,YAAY,GAAG,EAAE;QACpC,QAAQ,GAAG,UAAU,CAAC;KACvB;IAED,MAAM,MAAM,GAAG,IAAA,qBAAM,EAAC,CAAC,mBAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAG,EAAE;QACpE,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3B,WAAW;YACT,OAAO,oBAAK,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC;QAC5C,CAAC;QACD,WAAW;YACT,OAAO,oBAAK,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC;QAC5C,CAAC;QACD,eAAe;YACb,OAAO,oBAAK,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC;QAC1C,CAAC;QACD,qBAAqB;YACnB,OAAO,IAAA,0BAAgB,EAAC,oBAAK,CAAC,SAAU,EAAE,oBAAK,CAAC,OAAQ,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAtDD,oCAsDC","sourcesContent":["/// <reference types=\"../../types/jest\" />\nimport './expect';\n\nimport { render, RenderResult } from '@testing-library/react-native';\nimport path from 'path';\nimport React from 'react';\n\nimport {\n FileStub,\n inMemoryContext,\n requireContext,\n requireContextWithOverrides,\n} from './context-stubs';\nimport { setInitialUrl } from './mocks';\nimport { ExpoRoot } from '../ExpoRoot';\nimport getPathFromState from '../fork/getPathFromState';\nimport { stateCache } from '../getLinkingConfig';\nimport { store } from '../global-state/router-store';\nimport { RequireContext } from '../types';\n\n// re-export everything\nexport * from '@testing-library/react-native';\n\ntype RenderRouterOptions = Parameters<typeof render>[1] & {\n initialUrl?: any;\n};\n\ntype Result = ReturnType<typeof render> & {\n getPathname(): string;\n getPathnameWithParams(): string;\n getSegments(): string[];\n getSearchParams(): Record<string, string | string[]>;\n};\n\nfunction isOverrideContext(\n context: object\n): context is { appDir: string; overrides: Record<string, FileStub> } {\n return Boolean(typeof context === 'object' && 'appDir' in context);\n}\n\nexport function renderRouter(context?: string, options?: RenderRouterOptions): Result;\nexport function renderRouter(\n context: Record<string, FileStub>,\n options?: RenderRouterOptions\n): Result;\nexport function renderRouter(\n context: { appDir: string; overrides: Record<string, FileStub> },\n options?: RenderRouterOptions\n): Result;\nexport function renderRouter(\n context:\n | string\n | { appDir: string; overrides: Record<string, FileStub> }\n | Record<string, FileStub> = './app',\n { initialUrl = '/', ...options }: RenderRouterOptions = {}\n): Result {\n jest.useFakeTimers();\n\n let ctx: RequireContext;\n\n // Reset the initial URL\n\n setInitialUrl(initialUrl);\n\n // Force the render to be synchronous\n process.env.EXPO_ROUTER_IMPORT_MODE = 'sync';\n\n if (typeof context === 'string') {\n ctx = requireContext(path.resolve(process.cwd(), context));\n } else if (isOverrideContext(context)) {\n ctx = requireContextWithOverrides(context.appDir, context.overrides);\n } else {\n ctx = inMemoryContext(context);\n }\n\n stateCache.clear();\n\n let location: URL | undefined;\n\n if (typeof initialUrl === 'string') {\n location = new URL(initialUrl, 'test://');\n } else if (initialUrl instanceof URL) {\n location = initialUrl;\n }\n\n const result = render(<ExpoRoot context={ctx} location={location} />, {\n ...options,\n });\n\n return Object.assign(result, {\n getPathname(this: RenderResult): string {\n return store.routeInfoSnapshot().pathname;\n },\n getSegments(this: RenderResult): string[] {\n return store.routeInfoSnapshot().segments;\n },\n getSearchParams(this: RenderResult): Record<string, string | string[]> {\n return store.routeInfoSnapshot().params;\n },\n getPathnameWithParams(this: RenderResult): string {\n return getPathFromState(store.rootState!, store.linking!.config);\n },\n });\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing-library/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,oBAAkB;AAElB,gEAAqE;AACrE,gDAAwB;AACxB,kDAA0B;AAE1B,mDAKyB;AACzB,mCAAwC;AACxC,0CAAuC;AACvC,gFAAwD;AACxD,0DAAsE;AACtE,4CAA8C;AAC9C,+DAAqD;AAErD,uBAAuB;AACvB,gEAA8C;AAa9C,SAAS,iBAAiB,CACxB,OAAe;IAEf,OAAO,OAAO,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC;AACrE,CAAC;AAaD,SAAgB,aAAa,CAAC,OAA0B;IACtD,OAAO,IAAA,sCAAmB,EAAC,IAAA,0BAAc,EAAC,cAAc,CAAC,OAAO,CAAC,CAAE,CAAC,CAAC;AACvE,CAAC;AAFD,sCAEC;AAED,SAAgB,cAAc,CAAC,OAA0B;IACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,IAAA,8BAAc,EAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;KAC7D;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACjC,OAAO,IAAA,+BAAe,EACpB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACnF,CAAC;KACH;SAAM,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE;QACrC,OAAO,IAAA,2CAA2B,EAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;KACvE;SAAM;QACL,OAAO,IAAA,+BAAe,EAAC,OAAO,CAAC,CAAC;KACjC;AACH,CAAC;AAZD,wCAYC;AAED,SAAgB,YAAY,CAC1B,UAA6B,OAAO,EACpC,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,OAAO,KAA0B,EAAE;IAE1D,IAAI,CAAC,aAAa,EAAE,CAAC;IAErB,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE5C,wBAAwB;IACxB,IAAA,qBAAa,EAAC,UAAU,CAAC,CAAC;IAE1B,qCAAqC;IACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,MAAM,CAAC;IAC7C,6BAAU,CAAC,KAAK,EAAE,CAAC;IAEnB,IAAI,QAAyB,CAAC;IAE9B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;KAC3C;SAAM,IAAI,UAAU,YAAY,GAAG,EAAE;QACpC,QAAQ,GAAG,UAAU,CAAC;KACvB;IAED,MAAM,MAAM,GAAG,IAAA,qBAAM,EAAC,CAAC,mBAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAG,EAAE;QAC5E,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3B,WAAW;YACT,OAAO,oBAAK,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC;QAC5C,CAAC;QACD,WAAW;YACT,OAAO,oBAAK,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC;QAC5C,CAAC;QACD,eAAe;YACb,OAAO,oBAAK,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC;QAC1C,CAAC;QACD,qBAAqB;YACnB,OAAO,IAAA,0BAAgB,EAAC,oBAAK,CAAC,SAAU,EAAE,oBAAK,CAAC,OAAQ,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAzCD,oCAyCC","sourcesContent":["/// <reference types=\"../../types/jest\" />\nimport './expect';\n\nimport { render, RenderResult } from '@testing-library/react-native';\nimport path from 'path';\nimport React from 'react';\n\nimport {\n FileStub,\n inMemoryContext,\n requireContext,\n requireContextWithOverrides,\n} from './context-stubs';\nimport { setInitialUrl } from './mocks';\nimport { ExpoRoot } from '../ExpoRoot';\nimport getPathFromState from '../fork/getPathFromState';\nimport { getNavigationConfig, stateCache } from '../getLinkingConfig';\nimport { getExactRoutes } from '../getRoutes';\nimport { store } from '../global-state/router-store';\n\n// re-export everything\nexport * from '@testing-library/react-native';\n\ntype RenderRouterOptions = Parameters<typeof render>[1] & {\n initialUrl?: any;\n};\n\ntype Result = ReturnType<typeof render> & {\n getPathname(): string;\n getPathnameWithParams(): string;\n getSegments(): string[];\n getSearchParams(): Record<string, string | string[]>;\n};\n\nfunction isOverrideContext(\n context: object\n): context is { appDir: string; overrides: Record<string, FileStub> } {\n return Boolean(typeof context === 'object' && 'appDir' in context);\n}\n\nexport type MockContextConfig =\n | string // Pathname to a directory\n | string[] // Array of filenames to mock as empty components, e.g () => null\n | Record<string, FileStub> // Map of filenames and their exports\n | {\n // Directory to load as context\n appDir: string;\n // Map of filenames and their exports. Will override contents of files loaded in `appDir\n overrides: Record<string, FileStub>;\n };\n\nexport function getMockConfig(context: MockContextConfig) {\n return getNavigationConfig(getExactRoutes(getMockContext(context))!);\n}\n\nexport function getMockContext(context: MockContextConfig) {\n if (typeof context === 'string') {\n return requireContext(path.resolve(process.cwd(), context));\n } else if (Array.isArray(context)) {\n return inMemoryContext(\n Object.fromEntries(context.map((filename) => [filename, { default: () => null }]))\n );\n } else if (isOverrideContext(context)) {\n return requireContextWithOverrides(context.appDir, context.overrides);\n } else {\n return inMemoryContext(context);\n }\n}\n\nexport function renderRouter(\n context: MockContextConfig = './app',\n { initialUrl = '/', ...options }: RenderRouterOptions = {}\n): Result {\n jest.useFakeTimers();\n\n const mockContext = getMockContext(context);\n\n // Reset the initial URL\n setInitialUrl(initialUrl);\n\n // Force the render to be synchronous\n process.env.EXPO_ROUTER_IMPORT_MODE = 'sync';\n stateCache.clear();\n\n let location: URL | undefined;\n\n if (typeof initialUrl === 'string') {\n location = new URL(initialUrl, 'test://');\n } else if (initialUrl instanceof URL) {\n location = initialUrl;\n }\n\n const result = render(<ExpoRoot context={mockContext} location={location} />, {\n ...options,\n });\n\n return Object.assign(result, {\n getPathname(this: RenderResult): string {\n return store.routeInfoSnapshot().pathname;\n },\n getSegments(this: RenderResult): string[] {\n return store.routeInfoSnapshot().segments;\n },\n getSearchParams(this: RenderResult): Record<string, string | string[]> {\n return store.routeInfoSnapshot().params;\n },\n getPathnameWithParams(this: RenderResult): string {\n return getPathFromState(store.rootState!, store.linking!.config);\n },\n });\n}\n"]}
@@ -1,3 +1,2 @@
1
- import '@testing-library/jest-native/extend-expect';
2
1
  export declare function setInitialUrl(value: string): void;
3
2
  //# sourceMappingURL=mocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/testing-library/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,4CAA4C,CAAC;AAsBpD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,QAE1C"}
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/testing-library/mocks.ts"],"names":[],"mappings":"AA2BA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,QAE1C"}
@@ -1,7 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setInitialUrl = void 0;
4
- require("@testing-library/jest-native/extend-expect");
4
+ /*
5
+ * Optionally enable @testing-library/jest-native/extend-expect. We use this internally for the `toBeOnTheScreen` matcher()
6
+ */
7
+ try {
8
+ require('@testing-library/jest-native/extend-expect');
9
+ }
10
+ catch { }
5
11
  // include this section and the NativeAnimatedHelper section for mocking react-native-reanimated
6
12
  jest.mock('react-native-reanimated', () => {
7
13
  try {