-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.js
137 lines (118 loc) · 4.22 KB
/
App.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
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import 'react-native-gesture-handler'
import React, { useEffect } from 'react'
import { LogBox } from 'react-native'
import { NavigationContainer } from '@react-navigation/native'
import AppStackScreens from './src/stacks/AppStackScreens'
import { UserProvider } from './src/contexts/UserContext'
import { FirebaseProvider } from './src/contexts/FirebaseContext'
const App = () => {
useEffect(() => {
console.log("App useEffect start")
// ignore the warnings from firebase, only happens on Android
LogBox.ignoreLogs(['Setting a timer']);
return () => {
console.log("App useEffect return")
}
}, [])
return (
<FirebaseProvider>
<UserProvider>
<NavigationContainer>
<AppStackScreens />
</NavigationContainer>
</UserProvider>
</FirebaseProvider>
)
}
export default App;
/*
NEXT TO DO:
*** Weather API
** Current weather
** 7 day / 48h forecast
IN PROGRESS:
*** Weather API
** Current weather
** 7 day / 48h forecast
TODO :
*** Home screen - UI & logic
** Search/add city to list
* add state & country to verify that we get the correct location
* maybe use the timezone to determine correct location
** Flatlist with cities, current location as first choice
EXTRAS:
NADA
COMPLETED:
* 6 Basic Screens
* Home Screen
* Profile
* Sign In
* Sign Up
* Weather Details
* Splash
* Navigation setup
* Install react-navigation
* Split the stacks based on user
* Basic Navigation around the screens
* Main stack screens
* App stack screens
* Firebase project setup
* config file
* clientsecrets folder
* Add Firebase to the app
** Context functions
* sign in
* sign up
* get current user
* get user info
* listen for auth state changes
* sign out
* reauthenticate user
* update password
* update username
** Sign Up UI
* verify the user before updating user context
** Profile Screen
** UI & logic
* log out in header
* update user info (username, password)
** MainStackScreens header component
* Icon with link to profile screen
* header title to be set to the user name on profile screen
*** Add weather API
* Added API key & url prefix to client secrets folder
** UI for the current location ( first list item )
* convert the location coordinates into a city name ( api call )
*** Home screen - UI & logic
** Search/add city to list
** Delete from the list
** UI for the current location
** Flatlist with cities, current location as first choice
* just the city names & delete button next to it
* each item in list links to the weather details screen with the data for that city
* store the list with async storage // check the todo list project
* load the list from async storage // check the todo list project
** no double entries in the list
** don't forget to separate the lists for each user in asyncstorage
*** Weather details - UI & logic
** Top of component
* location name
** Top of component
* Temperature & icon
** Icon
* Switch case based on ID
** Finalize the styles
* Align temperatures, make sure they fit on a small screen
*** Splash
** rotating sun icon animation
** blue background
*** Sign In & Up
** finalize UI styles
* make sure the sign up fits a small screen
** Status Bar
* can not see status bar on iphone
** Validations
* email validation third party package
** alerts
* incorrect parameters entered on sign in screen
*/