-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
74 lines (63 loc) · 1.92 KB
/
Copy pathApp.js
File metadata and controls
74 lines (63 loc) · 1.92 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
70
71
72
73
74
import React, {Component} from 'react';
import Message from './message';
import Users from './users';
import Posts from './posts';
import Table from './table';
import './App.css';
class App extends Component {
state = { query: "", posts: [], users:[], filteredUsers: [] };
items = ['List Item 1','List Item 2', 'List Item 3'];
isVisible = true;
users = [];
componentDidMount(){
this.getUsers();
}
getPosts = () => {
fetch('https://jsonplaceholder.typicode.com/posts')
.then(rsp=>rsp.json())
.then(response =>{
this.setState({posts:response});
console.log(response)
})
}
getUsers = () => {
fetch('https://jsonplaceholder.typicode.com/users')
.then(rsp=>rsp.json())
.then(response =>{
this.setState({filteredUsers: response});
this.users = response;
console.log(response)
})
}
createAlert = (e)=> {
this.setState({ query: "hello" });
}
showOnConsole(){
console.log("Button clicked");
}
queryUpdate = (e)=>{
this.setState({query: e.target.value});
this.filterUsers(e.target.value);
console.log(e.target.value)
}
filterUsers = (name) => {
const filteredUsers = this.users.filter((u)=>u.name.toLowerCase().includes(name.toLowerCase()));
if(name != "" && filteredUsers.length > 0){
this.setState({filteredUsers:filteredUsers})
}else{
this.setState({filteredUsers:this.users})
}
}
render(){
return (
<div className="App">
<header className="App-header">
<p>Hello world Users Table</p>
<input value={this.state.query} onChange={this.queryUpdate} placeholder="search for name"/><br/>
<Table users={this.state.filteredUsers}/>
</header>
</div>
);
}
}
export default App;