From 9e4c67984c8d76a4499b2bacf12db92e789eba66 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Wed, 18 Jun 2025 12:26:05 +0530 Subject: [PATCH] Implemented signalR in project wiget in dashboard --- src/components/Dashboard/Projects.jsx | 33 +++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/components/Dashboard/Projects.jsx b/src/components/Dashboard/Projects.jsx index 5d1679f6..0be20321 100644 --- a/src/components/Dashboard/Projects.jsx +++ b/src/components/Dashboard/Projects.jsx @@ -1,8 +1,33 @@ -import React from "react"; +import React, { useCallback, useEffect, useState } from "react"; import { useDashboardProjectsCardData } from "../../hooks/useDashboard_Data"; +import eventBus from "../../services/eventBus"; +import GlobalRepository from "../../repositories/GlobalRepository"; const Projects = () => { const { projectsCardData } = useDashboardProjectsCardData(); + const [projectData, setProjectsData] = useState(projectsCardData); + + useEffect(() => { + setProjectsData(projectsCardData); + }, [projectsCardData]); + + const handler = useCallback( + async (msg) => { + try { + const response = + await GlobalRepository.getDashboardProjectsCardData(); + setProjectsData(response.data); + } catch (err) { + console.error(err); + } + }, + [GlobalRepository] + ); + + useEffect(() => { + eventBus.on("project", handler); + return () => eventBus.off("project", handler); + }, [handler]); return (
@@ -15,13 +40,13 @@ const Projects = () => {

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

Total

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

Ongoing
@@ -30,4 +55,4 @@ const Projects = () => { ); }; -export default Projects; \ No newline at end of file +export default Projects;