/
navigation.js
58 lines (54 loc) · 1.54 KB
/
navigation.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
56
57
58
import React from 'react';
import { TransitionPresets } from '@react-navigation/stack';
import _ from 'lodash';
import {
Decorators,
HeaderBackButton,
ModalScreens,
NavigationStacks,
} from 'shoutem.navigation';
import ChangePasswordScreen from './screens/ChangePasswordScreen';
import LoginScreen from './screens/LoginScreen';
import PasswordRecoveryScreen from './screens/PasswordRecoveryScreen';
import RegisterScreen from './screens/RegisterScreen';
import { AGORA_SCREEN_ID, ext, SENDBIRD_SCREEN_ID } from './const';
import { withLoginRequired } from './loginRequired';
Decorators.registerDecorator(withLoginRequired);
NavigationStacks.registerNavigationStack({
name: ext(),
screens: [
{
name: ext('LoginScreen'),
component: LoginScreen,
},
{
name: ext('RegisterScreen'),
component: RegisterScreen,
},
{
name: ext('PasswordRecoveryScreen'),
component: PasswordRecoveryScreen,
},
{
name: ext('ChangePasswordScreen'),
component: ChangePasswordScreen,
},
],
screenOptions: navParams => {
const onCancel = _.get(navParams, 'route.params.onCancel');
return {
headerLeft: _.get(navParams, 'route.params.canGoBack', false)
? props => <HeaderBackButton {...props} onPress={onCancel} />
: null,
...TransitionPresets.SlideFromRightIOS,
headerTitleAlign: 'center',
};
},
rootStack: false,
});
ModalScreens.registerModalScreens([
ext('EditProfileScreen'),
ext('ConfirmDeletionScreen'),
AGORA_SCREEN_ID,
SENDBIRD_SCREEN_ID,
]);