-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathApp.js
53 lines (47 loc) · 1.59 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
import React, { useState, useEffect } from 'react';
import axios from 'axios';
import * as Font from 'expo-font';
import DrawerNavigator from './navigation/DrawerNavigator';
export default function App() {
const [apiState, setApiState] = useState({
bjelasnicaData: null,
jahorinaData: null,
});
const [fontState, setFontState] = useState({
fontLoading: true,
});
useEffect(() => {
fetchData();
Font.loadAsync({
RobotoCondensed: require('./assets/fonts/RobotoCondensed-Regular.ttf'),
RobotoCondensedBold: require('./assets/fonts/RobotoCondensed-Bold.ttf'),
Dosis: require('./assets/fonts/Dosis-Light.ttf'),
}).then(() => setFontState({ fontLoading: false }));
}, []);
const fetchData = async () => {
const apiBjelasnica =
'https://api.darksky.net/forecast/32b96641b564729e696d75a7b98afd2e/43.710600,18.269324?exclude=minutely,alerts,flags&units=si';
const apiJahorina =
'https://api.darksky.net/forecast/32b96641b564729e696d75a7b98afd2e/43.729012,18.564189?exclude=minutely,alerts,flags&units=si';
const bjelasnicaData = await axios.get(apiBjelasnica);
const jahorinaData = await axios.get(apiJahorina);
setApiState({
bjelasnicaData: bjelasnicaData.data,
jahorinaData: jahorinaData.data,
});
};
const updateData = newData => {
setApiState({
...apiState,
...newData,
});
};
const { bjelasnicaData, jahorinaData } = apiState;
return (
!fontState.fontLoading && (
<DrawerNavigator
screenProps={{ bjelasnicaData, jahorinaData, fetchData, updateData }}
/>
)
);
}