refreshing globle project is created new project and user have manage project permission

This commit is contained in:
ashutosh.nehete 2025-06-13 12:01:36 +05:30
parent fdff7f7b41
commit 782ace9d1c

View File

@ -1,5 +1,9 @@
import getGreetingMessage from "../../utils/greetingHandler"; 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 AuthRepository from "../../repositories/AuthRepository";
import { useDispatch, useSelector } from "react-redux"; import { useDispatch, useSelector } from "react-redux";
import { changeMaster, setProjectId } from "../../slices/localVariablesSlice"; import { changeMaster, setProjectId } from "../../slices/localVariablesSlice";
@ -12,6 +16,8 @@ import { useProjects } from "../../hooks/useProjects";
import { useCallback, useEffect, useState } from "react"; import { useCallback, useEffect, useState } from "react";
import { useProjectName } from "../../hooks/useProjects"; import { useProjectName } from "../../hooks/useProjects";
import eventBus from "../../services/eventBus"; import eventBus from "../../services/eventBus";
import { useHasUserPermission } from "../../hooks/useHasUserPermission";
import { MANAGE_PROJECT } from "../../utils/constants";
const Header = () => { const Header = () => {
const { profile } = useProfile(); const { profile } = useProfile();
@ -19,6 +25,7 @@ const Header = () => {
const dispatch = useDispatch(changeMaster("Job Role")); const dispatch = useDispatch(changeMaster("Job Role"));
const { data, loading } = useMaster(); const { data, loading } = useMaster();
const navigate = useNavigate(); const navigate = useNavigate();
const HasManageProjectPermission = useHasUserPermission(MANAGE_PROJECT);
const getRole = (roles, joRoleId) => { const getRole = (roles, joRoleId) => {
if (!Array.isArray(roles)) return "User"; if (!Array.isArray(roles)) return "User";
@ -100,13 +107,14 @@ const Header = () => {
const handler = useCallback( const handler = useCallback(
async (data) => { async (data) => {
if (!HasManageProjectPermission) {
await fetchData(); await fetchData();
const projectExist = data.projectIds.some( const projectExist = data.projectIds.some(
(item) => item == selectedProject (item) => item == selectedProject
); );
if(projectExist){ if (projectExist) {
cacheData("hasReceived",false) cacheData("hasReceived", false);
}
} }
}, },
[fetchData] [fetchData]
@ -116,6 +124,21 @@ const Header = () => {
eventBus.on("assign_project_one", handler); eventBus.on("assign_project_one", handler);
return () => eventBus.off("assign_project_one", handler); return () => eventBus.off("assign_project_one", handler);
}, [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 ( return (
<nav <nav
className="layout-navbar container-xxl navbar navbar-expand-xl navbar-detached align-items-center bg-navbar-theme" className="layout-navbar container-xxl navbar navbar-expand-xl navbar-detached align-items-center bg-navbar-theme"