import React, { useEffect, useState } from "react"; import moment from "moment"; import { getProjectStatusName } from "../../utils/projectStatus"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; import { MANAGE_PROJECT } from "../../utils/constants"; import { cacheData, getCachedData } from "../../slices/apiDataManager"; import ManageProjectInfo from "./ManageProjectInfo"; import ProjectRepository from "../../repositories/ProjectRepository"; import showToast from "../../services/toastService"; const AboutProject = ({ data }) => { const [CurrentProject, setCurrentProject] = useState(data); const [showModal, setShowModal] = useState(false); useEffect(() => { setCurrentProject(data); }, [data]); const manageProject = useHasUserPermission(MANAGE_PROJECT); const handleShow = () => setShowModal(true); const handleClose = () => setShowModal(false); const handleFormSubmit = (updatedProject, setLoading) => { if ( CurrentProject?.id ) { ProjectRepository.updateProject(CurrentProject.id, updatedProject) .then((response) => { const updatedProjectData = { ...CurrentProject, ...response.data, building: CurrentProject.building, }; setCurrentProject(updatedProject); cacheData(`projectinfo-${CurrentProject.id}`, updatedProjectData); const projects_list = getCachedData("projectslist"); if (projects_list) { const updatedProjectsList = projects_list.map((project) => project.id === CurrentProject.id ? { ...project, ...response.data, // tenant:project.tenant } : project ); cacheData("projectslist", updatedProjectsList); } showToast( "Project updated successfully.", "success" ); setLoading(false); setShowModal(false); }) .catch((error) => { showToast(error.message, "error"); }); } }; return ( <>