Skip to content

Commit c5c81f5

Browse files
committed
Add Spinner Content when loading the page
1 parent 5c3be25 commit c5c81f5

File tree

4 files changed

+17
-2
lines changed

4 files changed

+17
-2
lines changed

package-lock.json

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"bootstrap": "^5.1.3",
1313
"react": "^18.2.0",
1414
"react-bootstrap": "^2.4.0",
15+
"react-content-loader": "^6.2.0",
1516
"react-dom": "^18.2.0",
1617
"react-router-dom": "^6.3.0",
1718
"react-scripts": "5.0.1",

public/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
work correctly both with client-side routing and a non-root public URL.
2525
Learn how to configure a non-root public URL by running `npm run build`.
2626
-->
27-
<title>React App</title>
27+
<title>Simple Client</title>
2828
</head>
2929
<body>
3030
<noscript>You need to enable JavaScript to run this app.</noscript>

src/pages/user/UsersList.jsx

+10-1
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,21 @@ import Layout from "../../components/layout/Layout";
22
import * as userService from "../../services/user.service";
33
import React, { useEffect, useState } from "react";
44
import { Button, Card, Col, Row } from "react-bootstrap";
5+
import { List } from "react-content-loader";
56
import { NavLink } from "react-router-dom";
67

78
const UsersList = () => {
89
const [users, setUsers] = useState({}); // Important, default need to be empty object
910
const [errorMessage, setErrorMessage] = useState(null);
11+
const [isLoading, setIsLoading] = useState(false);
1012

1113
const fetchUsers = async () => {
1214
try {
15+
setIsLoading(true);
16+
1317
const users = await userService.retrieveAllUsers();
1418
setUsers(users);
19+
setIsLoading(false);
1520
} catch (error) {
1621
const retrieveErrorMessage = () => {
1722
const apiErrorMessage = error?.response?.data?.message;
@@ -29,7 +34,11 @@ const UsersList = () => {
2934

3035
return (
3136
<Layout>
32-
{errorMessage ? (
37+
{isLoading ? (
38+
<div className="text-center">
39+
<List />
40+
</div>
41+
) : errorMessage ? (
3342
<h3 className="text-center text-danger fw-bold">{errorMessage}</h3>
3443
) : (
3544
<>

0 commit comments

Comments
 (0)