-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.js
56 lines (51 loc) · 1.37 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
import React, {useState} from 'react';
import {StyleSheet, View, FlatList} from 'react-native';
import Header from './components/Header';
import TodoItem from './components/TodoItem';
import AddTodo from './components/AddTodo';
export default function App() {
const [todos, setTodos] = useState([
{text: 'Hi There!', key: 1},
{text: 'Type Anything in the text box above', key: 2},
{text: 'Then Tap on th Add Todo button to save it', key: 3},
{text: 'Just Tap on the Todo Item to delete it', key: 4},
]);
const pressHandler = (key) => {
setTodos((prevTodos) => {
return prevTodos.filter((todo) => todo.key !== key);
});
};
const submitHandler = (text) => {
setTodos((prevTodos) => {
return [{text: text, key: Math.random().toString()}, ...prevTodos];
});
};
return (
<View style={styles.container}>
<Header />
<View style={styles.content}>
<AddTodo submitHandler={submitHandler} />
<View style={styles.list}>
<FlatList
data={todos}
renderItem={({item}) => (
<TodoItem item={item} pressHandler={pressHandler} />
)}
/>
</View>
</View>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
},
content: {
padding: 40,
},
list: {
marginTop: 20,
},
});