82 lines
2.2 KiB
TypeScript
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;
|