From 782ace9d1cc001aaaadcf283cd30300bc18001d3 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Fri, 13 Jun 2025 12:01:36 +0530 Subject: [PATCH] refreshing globle project is created new project and user have manage project permission --- src/components/Layout/Header.jsx | 39 +++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/src/components/Layout/Header.jsx b/src/components/Layout/Header.jsx index 70f58366..0dd51da3 100644 --- a/src/components/Layout/Header.jsx +++ b/src/components/Layout/Header.jsx @@ -1,5 +1,9 @@ import getGreetingMessage from "../../utils/greetingHandler"; -import { cacheData, clearAllCache, getCachedData } from "../../slices/apiDataManager"; +import { + cacheData, + clearAllCache, + getCachedData, +} from "../../slices/apiDataManager"; import AuthRepository from "../../repositories/AuthRepository"; import { useDispatch, useSelector } from "react-redux"; import { changeMaster, setProjectId } from "../../slices/localVariablesSlice"; @@ -12,6 +16,8 @@ import { useProjects } from "../../hooks/useProjects"; import { useCallback, useEffect, useState } from "react"; import { useProjectName } from "../../hooks/useProjects"; import eventBus from "../../services/eventBus"; +import { useHasUserPermission } from "../../hooks/useHasUserPermission"; +import { MANAGE_PROJECT } from "../../utils/constants"; const Header = () => { const { profile } = useProfile(); @@ -19,6 +25,7 @@ const Header = () => { const dispatch = useDispatch(changeMaster("Job Role")); const { data, loading } = useMaster(); const navigate = useNavigate(); + const HasManageProjectPermission = useHasUserPermission(MANAGE_PROJECT); const getRole = (roles, joRoleId) => { if (!Array.isArray(roles)) return "User"; @@ -100,13 +107,14 @@ const Header = () => { const handler = useCallback( async (data) => { - - await fetchData(); - const projectExist = data.projectIds.some( - (item) => item == selectedProject - ); - if(projectExist){ - cacheData("hasReceived",false) + if (!HasManageProjectPermission) { + await fetchData(); + const projectExist = data.projectIds.some( + (item) => item == selectedProject + ); + if (projectExist) { + cacheData("hasReceived", false); + } } }, [fetchData] @@ -116,6 +124,21 @@ const Header = () => { eventBus.on("assign_project_one", handler); return () => eventBus.off("assign_project_one", handler); }, [handler]); + + const newProjectHandler = useCallback( + async (msg) => { + if (HasManageProjectPermission && msg.keyword === "Create_Project") { + await fetchData(); + cacheData("hasReceived", false); + } + }, + [HasManageProjectPermission] + ); + + useEffect(() => { + eventBus.on("project", newProjectHandler); + return () => eventBus.off("project", newProjectHandler); + }, [handler]); return (