-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.js
54 lines (49 loc) · 1.42 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
import { StatusBar } from 'expo-status-bar';
import React, { useState } from 'react';
import { FlatList, StyleSheet, View } from 'react-native';
import Header from './src/components/Header';
import Empty from './src/components/Empty';
import Task from './src/components/Task';
import Input from './src/components/Input';
export default function App() {
const [data, setData] = useState([]);
const submitHandle = (value) => {
setData((prevTask) => {
return [
{
value: value,
key: Math.random().toString(),
},
...prevTask
]
});
};
const deleteItem = (key) => {
setData(prevTask => {
return prevTask.filter((task) => task.key != key);
});
};
return (
<View style={styles.container}>
<FlatList data={data} keyExtractor={(item) => item.key}
ListHeaderComponent={() => <Header />}
ListEmptyComponent={() => <Empty />}
renderItem={({ item }) => <Task item={item} deleteItem={deleteItem} />}
/>
<View>
<Input submitHandle={submitHandle} />
</View>
<StatusBar style="light" />
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#121212',
alignItems: 'center',
flexDirection: 'column',
paddingHorizontal: 10,
paddingVertical: 70,
},
});