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; } 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 ( <>
{/* Project Banner */}
{/* Left: Icon + Name */}
user image
{CurrentProject.name ? CurrentProject.name : "N/A"}
{manageProject && ( )}
); }; export default ProjectBanner;