med-app-doctor/App.tsx
2023-12-04 15:58:22 +07:00

82 lines
2.2 KiB
TypeScript

import 'react-native-gesture-handler';
import React, { useEffect } from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { Provider } from 'react-redux';
import store from './src/store';
import Splash from './src/screens/Splash';
import Main from './src/screens/Main';
import Login from './src/screens/Login';
import Help from './src/screens/Help';
import Register from './src/screens/Register';
import { PermissionsAndroid } from 'react-native';
const Stack = createNativeStackNavigator();
const App = (): JSX.Element => {
const requestPermission = async () => {
try {
console.log('asking for permission');
const granted = await PermissionsAndroid.requestMultiple([
PermissionsAndroid.PERMISSIONS.CAMERA,
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
]);
if (
granted['android.permission.CAMERA'] &&
granted['android.permission.WRITE_EXTERNAL_STORAGE']
) {
console.log('You can use the camera');
} else {
console.log('Camera permission denied');
}
} catch (error) {
console.log('permission error', error);
}
};
useEffect(() => {
requestPermission();
}, []);
return (
<Provider store={store}>
<NavigationContainer>
<Stack.Navigator initialRouteName="Splash">
<Stack.Screen
name="Splash"
component={Splash}
options={{
headerShown: false,
}}
/>
<Stack.Screen
name="Main"
component={Main}
options={{
headerShown: false,
}}
/>
<Stack.Screen
name="Login"
component={Login}
options={{
headerShown: false,
}}
/>
<Stack.Screen name="Help" component={Help} />
<Stack.Screen
name="Register"
component={Register}
options={{
headerShown: false,
}}
/>
</Stack.Navigator>
</NavigationContainer>
</Provider>
);
};
export default App;