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:
ashutosh.nehete 2025-06-19 10:42:43 +05:30
parent ad25c4610e
commit ade3401d02
4 changed files with 18 additions and 9 deletions

View File

@ -127,12 +127,16 @@ const Header = () => {
const newProjectHandler = useCallback(
async (msg) => {
if (HasManageProjectPermission && msg.keyword === "Create_Project") {
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(() => {
@ -215,7 +219,6 @@ const Header = () => {
<li className="nav-item dropdown-shortcuts navbar-dropdown dropdown me-2 me-xl-0">
<a
className="nav-link dropdown-toggle hide-arrow"
data-bs-toggle="dropdown"
data-bs-auto-close="true"
aria-expanded="false"

View File

@ -13,6 +13,7 @@ import { ITEMS_PER_PAGE, MANAGE_PROJECT } from "../../utils/constants";
import ProjectListView from "./ProjectListView";
import eventBus from "../../services/eventBus";
import { clearApiCacheKey } from "../../slices/apiCacheSlice";
import { defaultCheckBoxAppearanceProvider } from "pdf-lib";
const ProjectList = () => {
const { profile: loginUser } = useProfile();
@ -139,16 +140,21 @@ const ProjectList = () => {
setProjectList(updatedProjects);
sortingProject(updatedProjects);
}
if (
msg.keyword === "Update_Project" &&
projectList.some((item) => item.id === msg.response.id)
) {
await refetch();
sortingProject(projects);
ProjectRepository.getProjectList()
.then((response) => {
cacheData("projectslist", response?.data);
sortingProject(response?.data);
})
.catch((e) => {
console.error(e)
});
}
},
[HasManageProject, projects, sortingProject]
[HasManageProject, projectList, sortingProject]
);
useEffect(() => {
@ -171,6 +177,7 @@ const ProjectList = () => {
return () => eventBus.off("assign_project_one", assignProjectHandler);
}, [handler]);
return (
<>
<div

View File

@ -21,7 +21,6 @@ const ProjectListView = ({ projectData, recall }) => {
const [showModal, setShowModal] = useState(false);
const navigate = useNavigate();
const ManageProject = useHasUserPermission(MANAGE_PROJECT);
useEffect(()=>{
setProjectInfo(projectData);
},[projectData])

View File

@ -32,7 +32,7 @@ export function startSignalR(loggedUser) {
.split("T")[0];
connection.on("NotificationEventHandler", (data) => {
if (data.loggedInUserId != loggedUser?.employeeInfo.id) {
console.log("Notification received:", data);
// console.log("Notification received:", data);
// if action taken on attendance module
if (data.keyword == "Attendance") {
const checkIn = data.response.checkInTime.substring(0, 10);