File tree Expand file tree Collapse file tree 3 files changed +76
-19
lines changed Expand file tree Collapse file tree 3 files changed +76
-19
lines changed Original file line number Diff line number Diff line change
1
+ src/App.js|15 col 25| Unexpected token, expected ";"
Original file line number Diff line number Diff line change
1
+ import React from 'react';
2
+ import Search from './components/Search';
3
+
4
+ class App extends React.Component {
5
+ state = {
6
+ user: null,
7
+ error: null,
8
+ };
9
+
10
+ fetchUserData = async username => {
11
+ try {
12
+ this.setState({ loading: true });
13
+ const res = await fetch(`https://api.github.com/users/${username}`);
14
+ if (res.ok) {
15
+ const data = await res.json();
16
+
17
+ return this.setState({
18
+ user: data,
19
+ });
20
+ }
21
+
22
+ const error = (await res.json()).message;
23
+
24
+ this.setState({
25
+ error,
26
+ });
27
+ } catch (err) {
28
+ this.setState({
29
+ error: 'There was some error',
30
+ });
31
+ }
32
+ };
33
+
34
+ render() {
35
+ const { error } = this.state;
36
+
37
+ return (
38
+ <div>
39
+ <Search fetchData={this.fetchUserData} />
40
+ {error && <p className="text-danger">{error}</p>}
41
+ </div>
42
+ );
43
+ }
44
+ }
45
+
46
+ export default App;
Original file line number Diff line number Diff line change @@ -5,37 +5,47 @@ class App extends React.Component {
5
5
state = {
6
6
user : null ,
7
7
error : null ,
8
+ loading : false ,
8
9
} ;
9
10
10
11
fetchUserData = async username => {
11
- try {
12
- const res = await fetch ( `https://api.github.com/users/${ username } ` ) ;
13
- if ( res . ok ) {
14
- const data = await res . json ( ) ;
12
+ this . setState ( { loading : true } , async ( ) => {
13
+ try {
14
+ const res = await fetch ( `https://api.github.com/users/${ username } ` ) ;
15
+ if ( res . ok ) {
16
+ const data = await res . json ( ) ;
15
17
16
- return this . setState ( {
17
- user : data ,
18
- } ) ;
19
- }
18
+ return this . setState ( {
19
+ user : data ,
20
+ loading : false ,
21
+ } ) ;
22
+ }
20
23
21
- const error = ( await res . json ( ) ) . message ;
24
+ const error = ( await res . json ( ) ) . message ;
22
25
23
- this . setState ( {
24
- error,
25
- } ) ;
26
- } catch ( err ) {
27
- this . setState ( {
28
- error : 'There was some error' ,
29
- } ) ;
30
- }
26
+ this . setState ( {
27
+ error,
28
+ loading : false ,
29
+ } ) ;
30
+ } catch ( err ) {
31
+ this . setState ( {
32
+ error : 'There was some error' ,
33
+ loading : false ,
34
+ } ) ;
35
+ }
36
+ } ) ;
31
37
} ;
32
38
33
39
render ( ) {
34
- const { error } = this . state ;
40
+ const { error, loading } = this . state ;
41
+
35
42
return (
36
43
< div >
37
44
< Search fetchData = { this . fetchUserData } />
38
- { error && < p className = "text-danger" > { error } </ p > }
45
+ < div className = "text-center pt-5" >
46
+ { loading && < p > Loading...</ p > }
47
+ { error && < p className = "text-danger" > { error } </ p > }
48
+ </ div >
39
49
</ div >
40
50
) ;
41
51
}
You can’t perform that action at this time.
0 commit comments