2021-02-19 18:12:07 +01:00
|
|
|
import 'react-native-gesture-handler';
|
2021-02-20 17:07:10 +01:00
|
|
|
import { Navigation } from 'react-native-navigation';
|
2021-02-19 18:12:07 +01:00
|
|
|
import { gestureHandlerRootHOC } from 'react-native-gesture-handler';
|
2021-05-11 12:59:05 +02:00
|
|
|
import { CameraPage } from './src/CameraPage';
|
2021-02-19 18:43:41 +01:00
|
|
|
import { Splash } from './src/Splash';
|
2021-05-11 12:59:05 +02:00
|
|
|
import { MediaPage } from './src/MediaPage';
|
2021-02-19 19:51:59 +01:00
|
|
|
import { Camera } from 'react-native-vision-camera';
|
2021-02-19 16:07:53 +01:00
|
|
|
|
2021-02-19 18:24:32 +01:00
|
|
|
Navigation.setDefaultOptions({
|
|
|
|
topBar: {
|
|
|
|
visible: false,
|
|
|
|
},
|
2021-02-19 19:51:59 +01:00
|
|
|
window: {
|
|
|
|
backgroundColor: 'black',
|
|
|
|
},
|
|
|
|
layout: {
|
|
|
|
backgroundColor: 'black',
|
2021-02-20 17:07:10 +01:00
|
|
|
componentBackgroundColor: 'black',
|
2021-02-19 19:51:59 +01:00
|
|
|
},
|
2021-02-19 21:10:32 +01:00
|
|
|
statusBar: {
|
|
|
|
animated: true,
|
|
|
|
drawBehind: true,
|
|
|
|
translucent: true,
|
|
|
|
visible: true,
|
2021-02-20 17:07:10 +01:00
|
|
|
style: 'dark',
|
2021-02-19 21:10:32 +01:00
|
|
|
},
|
2021-02-19 21:14:42 +01:00
|
|
|
animations: {
|
|
|
|
setRoot: {
|
|
|
|
alpha: {
|
|
|
|
duration: 500,
|
|
|
|
from: 0,
|
|
|
|
to: 1,
|
2021-02-20 17:07:10 +01:00
|
|
|
},
|
2021-02-19 21:14:42 +01:00
|
|
|
},
|
2021-02-20 17:07:10 +01:00
|
|
|
},
|
2021-02-19 18:24:32 +01:00
|
|
|
});
|
2021-02-19 18:12:07 +01:00
|
|
|
|
2021-02-20 17:07:10 +01:00
|
|
|
Navigation.registerComponent(
|
|
|
|
'Splash',
|
|
|
|
() => gestureHandlerRootHOC(Splash),
|
|
|
|
() => Splash,
|
|
|
|
);
|
|
|
|
Navigation.registerComponent(
|
2021-05-11 12:59:05 +02:00
|
|
|
'CameraPage',
|
|
|
|
() => gestureHandlerRootHOC(CameraPage),
|
|
|
|
() => CameraPage,
|
2021-02-20 17:07:10 +01:00
|
|
|
);
|
|
|
|
Navigation.registerComponent(
|
2021-05-11 12:59:05 +02:00
|
|
|
'MediaPage',
|
|
|
|
() => gestureHandlerRootHOC(MediaPage),
|
|
|
|
() => MediaPage,
|
2021-02-20 17:07:10 +01:00
|
|
|
);
|
2021-02-19 18:02:24 +01:00
|
|
|
|
2021-02-19 20:05:02 +01:00
|
|
|
Navigation.events().registerNavigationButtonPressedListener((event) => {
|
2021-02-20 17:07:10 +01:00
|
|
|
if (event.buttonId === 'back') Navigation.pop(event.componentId);
|
2021-02-19 20:05:02 +01:00
|
|
|
});
|
|
|
|
|
2021-02-19 19:51:59 +01:00
|
|
|
Navigation.events().registerAppLaunchedListener(async () => {
|
2021-03-31 15:43:29 +02:00
|
|
|
const [cameraPermission, microphonePermission] = await Promise.all([
|
|
|
|
Camera.getCameraPermissionStatus(),
|
|
|
|
Camera.getMicrophonePermissionStatus(),
|
|
|
|
]);
|
2021-02-20 17:07:10 +01:00
|
|
|
let rootName = 'Splash';
|
2021-05-11 12:59:05 +02:00
|
|
|
if (cameraPermission === 'authorized' && microphonePermission === 'authorized') rootName = 'CameraPage';
|
2021-02-19 19:51:59 +01:00
|
|
|
|
|
|
|
Navigation.setRoot({
|
|
|
|
root: {
|
|
|
|
stack: {
|
|
|
|
children: [
|
|
|
|
{
|
|
|
|
component: {
|
2021-02-20 17:07:10 +01:00
|
|
|
name: rootName,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
},
|
2021-02-19 18:02:24 +01:00
|
|
|
});
|
|
|
|
});
|