-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
69 lines (61 loc) · 1.65 KB
/
Copy pathApp.js
File metadata and controls
69 lines (61 loc) · 1.65 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
import * as React from 'react';
import { useState, useEffect } from 'react';
import { Text, View, StyleSheet } from 'react-native';
import Constants from 'expo-constants';
// You can import from local files
import AssetExample from './components/AssetExample';
import { LoadingArticle, SortCard } from './components/LoadingComponents';
// or any pure javascript modules available in npm
import { Card, Button } from 'react-native-paper';
export default function App() {
const [isConnected, recheckConnection] = useState(true);
const [isLoading, setIsLoading] = useState(true);
// Fill an array with empty data
const [cardArray, setCardArray] = useState(new Array(3).fill(0));
useEffect(() => {
// handle loading data here, or wherever it makes sense to
}, []);
const renderLoadingContent = () => {
return (
<>
<Card style={styles.card}>
<SortCard />
</Card>
{cardArray.map(() => {
return (
<Card style={styles.card}>
<LoadingArticle />
</Card>
);
})}
</>
);
};
return (
<View style={styles.container}>
{isLoading && renderLoadingContent()}
<Button
mode="contained"
onPress={() => {
setCardArray(new Array(3).fill(0));
setIsLoading(true);
}}>
Reload Cards
</Button>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'start',
paddingTop: Constants.statusBarHeight + 18,
backgroundColor: '#ecf0f1',
padding: 18,
},
card: {
borderRadius: 8,
paddingVertical: 8,
marginBottom: 18,
},
});