1- import Layout from " ../../components/layout/Layout" ;
2- import UserCard from " ../../components/user/UserCard" ;
3- import * as userService from " ../../services/user.service" ;
4- import React , { useEffect , useState } from " react" ;
5- import { Col , Row } from " react-bootstrap" ;
6- import { List } from " react-content-loader" ;
1+ import Layout from ' ../../components/layout/Layout' ;
2+ import UserCard from ' ../../components/user/UserCard' ;
3+ import * as userService from ' ../../services/user.service' ;
4+ import React , { useEffect , useState } from ' react' ;
5+ import { Col , Row } from ' react-bootstrap' ;
6+ import { List } from ' react-content-loader' ;
77
88const UsersList = ( ) => {
99 const [ users , setUsers ] = useState ( { } ) ; // Important, default need to be empty object
@@ -16,17 +16,16 @@ const UsersList = () => {
1616
1717 const users = await userService . retrieveAllUsers ( ) ;
1818 setUsers ( users ) ;
19- setIsLoading ( false ) ;
2019 } catch ( error ) {
2120 const retrieveErrorMessage = ( ) => {
2221 const apiErrorMessage = error ?. response ?. data ?. message ;
2322
2423 // Null Coalescing Operator
25- return apiErrorMessage ?? " Error while connecting to the server" ;
24+ return apiErrorMessage ?? ' Error while connecting to the server' ;
2625 } ;
27-
28- setIsLoading ( false ) ; // Stop loader if we receive error msg
2926 setErrorMessage ( retrieveErrorMessage ( ) ) ;
27+ } finally {
28+ setIsLoading ( false ) ; // At this stage, we can stop the loader
3029 }
3130 } ;
3231
@@ -37,17 +36,17 @@ const UsersList = () => {
3736 return (
3837 < Layout >
3938 { isLoading ? (
40- < div className = " text-center" >
39+ < div className = ' text-center' >
4140 < List />
4241 </ div >
4342 ) : errorMessage ? (
44- < h3 className = " text-center text-danger fw-bold" > { errorMessage } </ h3 >
43+ < h3 className = ' text-center text-danger fw-bold' > { errorMessage } </ h3 >
4544 ) : (
4645 < >
47- < h4 className = " text-center mb-3" > Users</ h4 >
48- < Row className = " justify-content-center" >
46+ < h4 className = ' text-center mb-3' > Users</ h4 >
47+ < Row className = ' justify-content-center' >
4948 { Object . values ( users ) . map ( ( user ) => (
50- < Col key = { user . id } lg = { 4 } className = " p-1" >
49+ < Col key = { user . id } lg = { 4 } className = ' p-1' >
5150 < UserCard user = { user } />
5251 </ Col >
5352 ) ) }
0 commit comments