refreshing globle project is created new project and user have manage project permission
This commit is contained in:
parent
fdff7f7b41
commit
782ace9d1c
@ -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"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user