Persist project changes on multiple create/update operations.Ensures that project information changes (creation or updates) are correctly persisted when performed consecutively in the project list
This commit is contained in:
parent
ad25c4610e
commit
ade3401d02
@ -127,12 +127,16 @@ const Header = () => {
|
|||||||
|
|
||||||
const newProjectHandler = useCallback(
|
const newProjectHandler = useCallback(
|
||||||
async (msg) => {
|
async (msg) => {
|
||||||
|
|
||||||
if (HasManageProjectPermission && msg.keyword === "Create_Project") {
|
if (HasManageProjectPermission && msg.keyword === "Create_Project") {
|
||||||
await fetchData();
|
await fetchData();
|
||||||
cacheData("hasReceived", false);
|
} else if (projectNames.some((item) => item.id == msg.response.id)) {
|
||||||
|
console.log((projectNames.some((item) => item.id == msg.response.id)))
|
||||||
|
await fetchData();
|
||||||
}
|
}
|
||||||
|
cacheData("hasReceived", false);
|
||||||
},
|
},
|
||||||
[HasManageProjectPermission]
|
[HasManageProjectPermission,projectNames]
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -215,7 +219,6 @@ const Header = () => {
|
|||||||
<li className="nav-item dropdown-shortcuts navbar-dropdown dropdown me-2 me-xl-0">
|
<li className="nav-item dropdown-shortcuts navbar-dropdown dropdown me-2 me-xl-0">
|
||||||
<a
|
<a
|
||||||
className="nav-link dropdown-toggle hide-arrow"
|
className="nav-link dropdown-toggle hide-arrow"
|
||||||
|
|
||||||
data-bs-toggle="dropdown"
|
data-bs-toggle="dropdown"
|
||||||
data-bs-auto-close="true"
|
data-bs-auto-close="true"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
|
@ -13,6 +13,7 @@ import { ITEMS_PER_PAGE, MANAGE_PROJECT } from "../../utils/constants";
|
|||||||
import ProjectListView from "./ProjectListView";
|
import ProjectListView from "./ProjectListView";
|
||||||
import eventBus from "../../services/eventBus";
|
import eventBus from "../../services/eventBus";
|
||||||
import { clearApiCacheKey } from "../../slices/apiCacheSlice";
|
import { clearApiCacheKey } from "../../slices/apiCacheSlice";
|
||||||
|
import { defaultCheckBoxAppearanceProvider } from "pdf-lib";
|
||||||
|
|
||||||
const ProjectList = () => {
|
const ProjectList = () => {
|
||||||
const { profile: loginUser } = useProfile();
|
const { profile: loginUser } = useProfile();
|
||||||
@ -139,16 +140,21 @@ const ProjectList = () => {
|
|||||||
setProjectList(updatedProjects);
|
setProjectList(updatedProjects);
|
||||||
sortingProject(updatedProjects);
|
sortingProject(updatedProjects);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
msg.keyword === "Update_Project" &&
|
msg.keyword === "Update_Project" &&
|
||||||
projectList.some((item) => item.id === msg.response.id)
|
projectList.some((item) => item.id === msg.response.id)
|
||||||
) {
|
) {
|
||||||
await refetch();
|
ProjectRepository.getProjectList()
|
||||||
sortingProject(projects);
|
.then((response) => {
|
||||||
|
cacheData("projectslist", response?.data);
|
||||||
|
sortingProject(response?.data);
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
console.error(e)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[HasManageProject, projects, sortingProject]
|
[HasManageProject, projectList, sortingProject]
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -171,6 +177,7 @@ const ProjectList = () => {
|
|||||||
return () => eventBus.off("assign_project_one", assignProjectHandler);
|
return () => eventBus.off("assign_project_one", assignProjectHandler);
|
||||||
}, [handler]);
|
}, [handler]);
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div
|
<div
|
||||||
|
@ -21,7 +21,6 @@ const ProjectListView = ({ projectData, recall }) => {
|
|||||||
const [showModal, setShowModal] = useState(false);
|
const [showModal, setShowModal] = useState(false);
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const ManageProject = useHasUserPermission(MANAGE_PROJECT);
|
const ManageProject = useHasUserPermission(MANAGE_PROJECT);
|
||||||
|
|
||||||
useEffect(()=>{
|
useEffect(()=>{
|
||||||
setProjectInfo(projectData);
|
setProjectInfo(projectData);
|
||||||
},[projectData])
|
},[projectData])
|
||||||
|
@ -32,7 +32,7 @@ export function startSignalR(loggedUser) {
|
|||||||
.split("T")[0];
|
.split("T")[0];
|
||||||
connection.on("NotificationEventHandler", (data) => {
|
connection.on("NotificationEventHandler", (data) => {
|
||||||
if (data.loggedInUserId != loggedUser?.employeeInfo.id) {
|
if (data.loggedInUserId != loggedUser?.employeeInfo.id) {
|
||||||
console.log("Notification received:", data);
|
// console.log("Notification received:", data);
|
||||||
// if action taken on attendance module
|
// if action taken on attendance module
|
||||||
if (data.keyword == "Attendance") {
|
if (data.keyword == "Attendance") {
|
||||||
const checkIn = data.response.checkInTime.substring(0, 10);
|
const checkIn = data.response.checkInTime.substring(0, 10);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user