diff --git a/src/components/Dashboard/Projects.jsx b/src/components/Dashboard/Projects.jsx index 0be20321..6a944755 100644 --- a/src/components/Dashboard/Projects.jsx +++ b/src/components/Dashboard/Projects.jsx @@ -2,9 +2,10 @@ import React, { useCallback, useEffect, useState } from "react"; import { useDashboardProjectsCardData } from "../../hooks/useDashboard_Data"; import eventBus from "../../services/eventBus"; import GlobalRepository from "../../repositories/GlobalRepository"; +import TeamsSkeleton from "./TeamsSkeleton"; const Projects = () => { - const { projectsCardData } = useDashboardProjectsCardData(); + const { projectsCardData,loading } = useDashboardProjectsCardData(); const [projectData, setProjectsData] = useState(projectsCardData); useEffect(() => { @@ -13,13 +14,13 @@ const Projects = () => { const handler = useCallback( async (msg) => { - try { - const response = - await GlobalRepository.getDashboardProjectsCardData(); - setProjectsData(response.data); - } catch (err) { - console.error(err); - } + try { + const response = + await GlobalRepository.getDashboardProjectsCardData(); + setProjectsData(response.data); + } catch (err) { + console.error(err); + } }, [GlobalRepository] ); @@ -37,20 +38,24 @@ const Projects = () => { Projects -
-
-

- {projectData.totalProjects?.toLocaleString()} -

- Total + {loading ? ( + + ) : ( +
+
+

+ {projectData.totalProjects?.toLocaleString()} +

+ Total +
+
+

+ {projectData.ongoingProjects?.toLocaleString()} +

+ Ongoing +
-
-

- {projectData.ongoingProjects?.toLocaleString()} -

- Ongoing -
-
+ )}
); }; diff --git a/src/components/Dashboard/Tasks.jsx b/src/components/Dashboard/Tasks.jsx index 2513e061..3530ed94 100644 --- a/src/components/Dashboard/Tasks.jsx +++ b/src/components/Dashboard/Tasks.jsx @@ -1,6 +1,7 @@ import React from "react"; import { useSelector } from "react-redux"; import { useDashboardTasksCardData } from "../../hooks/useDashboard_Data"; +import TeamsSkeleton from "./TeamsSkeleton"; const TasksCard = () => { const projectId = useSelector((store) => store.localVariables?.projectId); @@ -16,11 +17,7 @@ const TasksCard = () => { {loading ? ( // Loader will be displayed when loading is true -
-
- Loading... -
-
+ ) : error ? ( // Error message if there's an error
{error}
diff --git a/src/components/Dashboard/Teams.jsx b/src/components/Dashboard/Teams.jsx index 00e881f5..b3227970 100644 --- a/src/components/Dashboard/Teams.jsx +++ b/src/components/Dashboard/Teams.jsx @@ -2,6 +2,7 @@ import React, { useCallback, useEffect, useState } from "react"; import { useSelector } from "react-redux"; import { useDashboardTeamsCardData } from "../../hooks/useDashboard_Data"; import eventBus from "../../services/eventBus"; +import TeamsSkeleton from "./TeamsSkeleton"; const Teams = () => { const projectId = useSelector((store) => store.localVariables?.projectId); @@ -38,11 +39,7 @@ const Teams = () => { {loading ? ( // Blue spinner loader -
-
- Loading... -
-
+ ) : error ? ( // Error message if data fetching fails
{error}
diff --git a/src/components/Dashboard/TeamsSkeleton.jsx b/src/components/Dashboard/TeamsSkeleton.jsx new file mode 100644 index 00000000..6236e939 --- /dev/null +++ b/src/components/Dashboard/TeamsSkeleton.jsx @@ -0,0 +1,18 @@ +import React from "react"; + +const TeamsSkeleton = () => { + return ( +
+
+
+
+
+
+
+
+
+
+ ); +}; + +export default TeamsSkeleton;