import React, { useState, useEffect } from "react"; import ManageProjectInfo from "./ManageProjectInfo"; import showToast from "../../services/toastService"; import ProjectRepository from "../../repositories/ProjectRepository"; import { cacheData, getCachedData } from "../../slices/apiDataManager"; import { hasUserPermission } from "../../utils/authUtils"; import moment from "moment"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; import { MANAGE_PROJECT } from "../../utils/constants"; const ProjectBanner = ({ project_data }) => { const [showModal, setShowModal] = useState(false); const manageProject = useHasUserPermission(MANAGE_PROJECT); const [CurrentProject, setCurrentProject] = useState(project_data); if (project_data == null) { return incomplete project information; } useEffect(() => { setCurrentProject(project_data); }, [project_data]); 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 ( <>