Fixed state sync issue by clearing cache and re-fetching project data after task creation.
This commit is contained in:
parent
cacbedeabd
commit
df7303b724
@ -12,7 +12,7 @@ import ProjectModal from "./ProjectModal";
|
|||||||
import { useHasUserPermission } from "../../hooks/useHasUserPermission";
|
import { useHasUserPermission } from "../../hooks/useHasUserPermission";
|
||||||
import { MANAGE_PROJECT_INFRA } from "../../utils/constants";
|
import { MANAGE_PROJECT_INFRA } from "../../utils/constants";
|
||||||
import InfraTable from "./Infrastructure/InfraTable";
|
import InfraTable from "./Infrastructure/InfraTable";
|
||||||
import { cacheData, getCachedData } from "../../slices/apiDataManager";
|
import { cacheData, clearCacheKey, getCachedData } from "../../slices/apiDataManager";
|
||||||
import { useProjectDetails } from "../../hooks/useProjects";
|
import { useProjectDetails } from "../../hooks/useProjects";
|
||||||
|
|
||||||
const ProjectInfra = ({
|
const ProjectInfra = ({
|
||||||
@ -21,7 +21,7 @@ const ProjectInfra = ({
|
|||||||
eachSiteEngineer,
|
eachSiteEngineer,
|
||||||
}) => {
|
}) => {
|
||||||
const [expandedBuildings, setExpandedBuildings] = useState([]);
|
const [expandedBuildings, setExpandedBuildings] = useState([]);
|
||||||
const { projects_Details, loading } = useProjectDetails(data.id);
|
const { projects_Details,refetch, loading } = useProjectDetails(data.id);
|
||||||
const [project, setProject] = useState(projects_Details);
|
const [project, setProject] = useState(projects_Details);
|
||||||
const [modalConfig, setModalConfig] = useState({ type: null, data: null });
|
const [modalConfig, setModalConfig] = useState({ type: null, data: null });
|
||||||
const [isModalOpen, setIsModalOpen] = useState(false);
|
const [isModalOpen, setIsModalOpen] = useState(false);
|
||||||
@ -110,7 +110,6 @@ const ProjectInfra = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleTaskModelFormSubmit = (updatedModel) => {
|
const handleTaskModelFormSubmit = (updatedModel) => {
|
||||||
// debugger
|
|
||||||
if (updatedModel.id == "") updatedModel.id = 0;
|
if (updatedModel.id == "") updatedModel.id = 0;
|
||||||
const updatedProject = { ...project };
|
const updatedProject = { ...project };
|
||||||
|
|
||||||
@ -119,7 +118,6 @@ const ProjectInfra = ({
|
|||||||
onDataChange("task-change");
|
onDataChange("task-change");
|
||||||
showToast("Details updated successfully.", "success");
|
showToast("Details updated successfully.", "success");
|
||||||
// setClearFormTrigger( true );
|
// setClearFormTrigger( true );
|
||||||
|
|
||||||
if (response?.data[0]) {
|
if (response?.data[0]) {
|
||||||
const { workItemId, workItem } = response.data[0];
|
const { workItemId, workItem } = response.data[0];
|
||||||
|
|
||||||
@ -140,7 +138,7 @@ const ProjectInfra = ({
|
|||||||
existingItem.workItemId ===
|
existingItem.workItemId ===
|
||||||
workItem.workItemId
|
workItem.workItemId
|
||||||
)
|
)
|
||||||
? workArea.workItems // If the workItemId already exists, keep the current workItems
|
? [...workArea.workItems] // Create a new array to trigger re-render
|
||||||
: [...workArea.workItems, workItem],
|
: [...workArea.workItems, workItem],
|
||||||
}
|
}
|
||||||
: workArea
|
: workArea
|
||||||
@ -151,15 +149,18 @@ const ProjectInfra = ({
|
|||||||
}
|
}
|
||||||
: building
|
: building
|
||||||
);
|
);
|
||||||
|
|
||||||
updatedProject.buildings = updatedBuildings;
|
updatedProject.buildings = updatedBuildings;
|
||||||
|
// workItem update, but having local state issue there for needed to calling api
|
||||||
|
clearCacheKey( "projectInfo" )
|
||||||
|
refetch()
|
||||||
|
|
||||||
setProject(updatedProject);
|
|
||||||
cacheData("projectInfo", {
|
cacheData("projectInfo", {
|
||||||
projectId: updatedProject.id,
|
projectId: updatedProject.id,
|
||||||
data: updatedProject,
|
data: updatedProject,
|
||||||
});
|
});
|
||||||
console.log(project);
|
|
||||||
|
setProject( updatedProject );
|
||||||
|
closeTaskModel()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user