Passed
Pull Request — dev (#7)
by Oscar
03:03
created

App.tsx   A

Complexity

Total Complexity 3
Complexity/F 1.5

Size

Lines of Code 84
Function Count 2

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 73
mnd 1
bc 1
fnc 2
dl 0
loc 84
rs 10
bpm 0.5
cpm 1.5
noi 0
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A ➔ CustomDrawerContent 0 7 1
A ➔ App 0 37 2
1
import { StatusBar } from 'expo-status-bar';
2
import { useState, useEffect } from 'react';
3
import {SafeAreaView} from 'react-native-safe-area-context';
4
import { Pressable, StyleSheet, Text, View, Button, Image } from 'react-native';
5
// import Map from './components/Map';
6
import MapNavigator from './components/MapNavigator';
7
import Login from './components/auth/LoginHome';
8
import Map from './components/Map'
9
import AuthStack from './components/auth/AuthStack';
10
import FlashMessage from 'react-native-flash-message';
11
import React from 'react';
12
import {API_KEY} from "@env";
13
import { NavigationContainer, StackActions } from '@react-navigation/native';
14
import { createNativeStackNavigator } from '@react-navigation/native-stack';
15
import EmailRegister from './components/auth/EmailRegister';
16
import { createDrawerNavigator, DrawerContentScrollView, DrawerItemList,DrawerItem } from '@react-navigation/drawer';
17
import { useNavigation } from '@react-navigation/native';
18
import Wallet from './components/drawer/Wallet';
19
import History from './components/drawer/History';
20
21
22
const Stack = createNativeStackNavigator();
23
const Drawer = createDrawerNavigator();
24
25
function CustomDrawerContent(props) {
26
  return (
27
    <DrawerContentScrollView {...props}>
28
      <Image style={styles.drawerImage} source={require('./assets/logo_dark.png')}></Image>
29
      <DrawerItemList {...props} />
30
    </DrawerContentScrollView>
31
  );
32
}
33
34
export default function App() {    
35
  const [position, setPosition] = useState({});
36
  const [isLoggedIn, setIsLoggedIn] = useState(false);
37
  const [token, setToken] = useState(null);
38
  const [toggleDrawer, setToggelDrawer] = useState(false);
39
40
  return (
41
    <View style={styles.container}>
42
      
43
      <NavigationContainer>
44
        <Drawer.Navigator screenOptions={{headerShown: false}}  useLegacyImplementation
45
      drawerContent={(props) => <CustomDrawerContent {...props} />}>
46
47
        {isLoggedIn ?
48
        <Drawer.Screen name="Map">
49
          {(screenProps) => <MapNavigator {...screenProps} token={token} API_KEY={API_KEY} position={position} setPosition={setPosition}/>}
50
        </Drawer.Screen>
51
        :
52
        <Drawer.Screen name="Auth">
53
          {() => <AuthStack setToken={setToken} setIsLoggedIn={setIsLoggedIn}/>}
54
        </Drawer.Screen>
55
        }
56
        
57
        <Drawer.Screen name='Wallet'>
58
          {(screenProps) => <Wallet {...screenProps} />}
59
        </Drawer.Screen>
60
61
        <Drawer.Screen name='Ride History'>
62
          {(screenProps) => <History {...screenProps} />}
63
        </Drawer.Screen>
64
65
        </Drawer.Navigator>
66
      </NavigationContainer>
67
68
      <FlashMessage position={'top'}/>
69
    </View>
70
  );
71
72
}
73
74
const styles = StyleSheet.create({
75
  container: {
76
    flex: 1,
77
  },
78
79
  drawerImage: {
80
    margin: 20,
81
    marginBottom: 50,
82
    marginTop: 30
83
  },
84
});