-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
89 lines (80 loc) · 2.91 KB
/
App.js
File metadata and controls
89 lines (80 loc) · 2.91 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import React from "react";
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
import { SafeAreaView } from "react-native-safe-area-context";
import { AppLoading } from 'expo';
import { useFonts,
Raleway_100Thin,
Raleway_100Thin_Italic,
Raleway_200ExtraLight,
Raleway_200ExtraLight_Italic,
Raleway_300Light,
Raleway_300Light_Italic,
Raleway_400Regular,
Raleway_400Regular_Italic,
Raleway_500Medium,
Raleway_500Medium_Italic,
Raleway_600SemiBold,
Raleway_600SemiBold_Italic,
Raleway_700Bold, } from '@expo-google-fonts/raleway';
import HomeNav from "./app/routes/HomeNav";
import OpenScreen from "./app/screens/OpenScreen";
import SignupScreen from "./app/screens/SignupScreen";
import SignInScreen from "./app/screens/SignInScreen";
import { createStore } from 'redux';
import { Provider } from 'react-redux';
const rootReducer = (currentState= {user:'', items: []}, action) => {
if(action.type === "login user"){
return {...currentState, user: action.payload, items: action.payload.items}
} else if(action.type === "signup user"){
return {...currentState, user: action.payload, newUser: action.payload}
}else if(action.type === "logout user"){
return {...currentState, user: ''}
}else if(action.type === "favorite item"){
return {...currentState, items: [action.payload, ...currentState.items]}
} else if(action.type === "delete item"){
array = [...currentState.items]
deletedItem = array.find(item => item.id === action.payload.id)
index = array.indexOf(deletedItem)
array.splice(index, 1)
return {...currentState, items: array}
}else {
return currentState
}
}
const store = createStore(rootReducer)
const Stack = createStackNavigator()
export default function App() {
let [fontsLoaded] = useFonts({
Raleway_100Thin,
Raleway_100Thin_Italic,
Raleway_200ExtraLight,
Raleway_200ExtraLight_Italic,
Raleway_300Light,
Raleway_300Light_Italic,
Raleway_400Regular,
Raleway_400Regular_Italic,
Raleway_500Medium,
Raleway_500Medium_Italic,
Raleway_600SemiBold,
Raleway_600SemiBold_Italic,
Raleway_700Bold,
});
if (!fontsLoaded) {
return <AppLoading />;
}
return (
<Provider store={store}>
<SafeAreaView style={{ flex: 1, backgroundColor:'#fff'}}>
<NavigationContainer>
<Stack.Navigator headerMode={'none'}>
<Stack.Screen name="OpenScreen" component={OpenScreen} options={{headerShown: false}}/>
<Stack.Screen name="HomeNav" component={HomeNav} option={{headerShown: false}}/>
<Stack.Screen name="SignInScreen" component={SignInScreen} options={{headerShown: false}}/>
<Stack.Screen name="SignupScreen" component={SignupScreen} options={{headerShown: false}}/>
</Stack.Navigator>
</NavigationContainer>
</SafeAreaView>
</Provider>
)
}