Skip to content

Commit a8f88f3

Browse files
committed
data fetching in home/admin pages
1 parent ee83c43 commit a8f88f3

File tree

2 files changed

+17
-55
lines changed

2 files changed

+17
-55
lines changed

src/components/Admin/index.js

+9-23
Original file line numberDiff line numberDiff line change
@@ -11,36 +11,23 @@ class AdminPage extends Component {
1111

1212
this.state = {
1313
loading: false,
14-
error: false,
1514
users: [],
1615
};
1716
}
1817

1918
componentDidMount() {
2019
this.setState({ loading: true });
2120

22-
this.props.firebase
23-
.users()
24-
.once('value')
25-
.then(snapshot => {
26-
const usersObject = snapshot.val();
27-
const users = Object.keys(usersObject).map(key => ({
28-
...usersObject[key],
29-
uid: key,
30-
}));
31-
32-
this.setState(state => ({
33-
users,
34-
loading: false,
35-
}));
36-
})
37-
.catch(error => {
38-
this.setState({ error: true, loading: false });
39-
});
21+
this.props.firebase.users().on('value', snapshot => {
22+
const usersObject = snapshot.val();
23+
const users = Object.keys(usersObject).map(key => ({
24+
...usersObject[key],
25+
uid: key,
26+
}));
4027

41-
this.props.firebase.users().on('child_removed', snapshot => {
4228
this.setState(state => ({
43-
users: state.users.filter(user => user.uid !== snapshot.key),
29+
users,
30+
loading: false,
4431
}));
4532
});
4633
}
@@ -50,7 +37,7 @@ class AdminPage extends Component {
5037
};
5138

5239
render() {
53-
const { users, loading, error } = this.state;
40+
const { users, loading } = this.state;
5441

5542
return (
5643
<div>
@@ -60,7 +47,6 @@ class AdminPage extends Component {
6047
</p>
6148

6249
{loading && <div>Loading ...</div>}
63-
{error && <div>Something went wrong ...</div>}
6450

6551
<UserList users={users} onRemove={this.onRemove} />
6652
</div>

src/components/Home/index.js

+8-32
Original file line numberDiff line numberDiff line change
@@ -22,46 +22,22 @@ class HomePage extends Component {
2222
componentDidMount() {
2323
this.setState({ userLoading: true, messageLoading: true });
2424

25-
this.props.firebase
26-
.users()
27-
.once('value')
28-
.then(snapshot => {
29-
this.setState(state => ({
30-
users: snapshot.val(),
31-
userLoading: false,
32-
}));
33-
})
34-
.catch(error => {
35-
this.setState({ error: true, userLoading: false });
36-
});
25+
this.props.firebase.users().on('value', snapshot => {
26+
this.setState(state => ({
27+
users: snapshot.val(),
28+
userLoading: false,
29+
}));
30+
});
3731

3832
this.props.firebase
3933
.messages()
4034
.orderByKey()
4135
.limitToLast(100)
42-
.once('value')
43-
.then(snapshot => {
36+
.on('child_added', snapshot => {
4437
this.setState(state => ({
45-
messages: Object.values(snapshot.val()),
38+
messages: [snapshot.val(), ...state.messages],
4639
messageLoading: false,
4740
}));
48-
49-
// Listen for updates
50-
this.props.firebase
51-
.messages()
52-
.orderByKey()
53-
.limitToLast(100)
54-
.on('child_added', snapshot => {
55-
this.setState(state => ({
56-
messages: [snapshot.val(), ...state.messages],
57-
}));
58-
});
59-
})
60-
.catch(error => {
61-
this.setState({
62-
error: true,
63-
messageLoading: false,
64-
});
6541
});
6642
}
6743

0 commit comments

Comments
 (0)