-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.js
55 lines (50 loc) · 1.54 KB
/
App.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import React from "react";
import {
createNavigationContainerRef,
NavigationContainer,
} from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
import { CallScreen } from "./src/screens/CallScreen";
import MainScreen from "./src/screens/MainScreen";
import { CallProvider } from "./src/context/CallContext";
const Stack = createStackNavigator();
const navigationRef = createNavigationContainerRef();
export const navigate = (name, params) => {
const routeNames = navigationRef?.current?.getRootState()?.routeNames || [];
if (navigationRef?.current?.isReady() && routeNames.includes(name)) {
navigationRef?.current?.navigate(name, params);
}
};
export const setParams = (params) => {
if (navigationRef?.current?.isReady()) {
navigationRef?.current?.setParams(params);
}
};
export const goBack = () => {
if (navigationRef?.current?.canGoBack()) {
navigationRef?.current?.goBack();
}
};
export default function App() {
return (
<CallProvider>
<NavigationContainer ref={navigationRef}>
<Stack.Navigator
screenOptions={{ headerShown: false }}
initialRouteName="MainScreen"
>
<Stack.Screen
component={MainScreen}
name="MainScreen"
options={{ animationEnabled: false }}
/>
<Stack.Screen
component={CallScreen}
name="CallScreen"
options={{ animationEnabled: false }}
/>
</Stack.Navigator>
</NavigationContainer>
</CallProvider>
);
}