import React, { useState, useEffect } from "react"; import ProjectCard from "../../components/Project/ProjectCard"; import ManageProjectInfo from "../../components/Project/ManageProjectInfo"; import showToast from "../../services/toastService"; import Breadcrumb from "../../components/common/Breadcrumb"; import { cacheData, clearCacheKey, getCachedData, } from "../../slices/apiDataManager"; import ProjectRepository from "../../repositories/ProjectRepository"; import { useProjects } from "../../hooks/useProjects"; import { useDispatch } from "react-redux"; import { changeMaster } from "../../slices/localVariablesSlice"; const ProjectList = () => { const { projects,loading,error} = useProjects() const dispatch = useDispatch() // -------hook----- // const [projects, setProjects] = useState([]); // const [loading, setLoading] = useState(true); // const [error, setError] = useState(""); const [isCreateModalOpen, setIsCreateModalOpen] = useState(false); //const projects_cache = getCachedData("projectslist"); const openModal = () => { console.log("clicked") setIsCreateModalOpen(true); }; // Close the modal const closeModal = () => { setIsCreateModalOpen(false); const modalBackdrop = document.querySelector(".modal-backdrop"); if (modalBackdrop) modalBackdrop.remove(); }; // const fetchData = async () => { // const projects_cache = getCachedData("projectslist"); // if (!projects_cache) { // ProjectRepository.getProjectList() // .then((response) => { // setProjects(response); // cacheData("projectslist", response); // setLoading(false); // }) // .catch((error) => { // console.error(error); // setError("Failed to fetch data."); // }); // } else { // if (!projects.length) setProjects(projects_cache); // } // }; const handleFormSubmit = (updatedProject) => { delete updatedProject.id; //console.log("Form submitted:", updatedProject); ProjectRepository.manageProject(updatedProject) .then((response) => { clearCacheKey("projectslist"); fetchData(); showToast("Project updated successfully.", "success"); closeModal(); }) .catch((error) => { showToast(error.message, "error"); }); // api // .post("/api/project", updatedProject) // .then((data) => { // clearCacheKey("projectslist"); // fetchData(); // showToast("Project updated successfully.", "success"); // closeModal(); // }) // .catch((error) => { // showToast(error.message, "error"); // }); }; // useEffect(() => { // fetchData(); // }, []); useEffect(() => { if (isCreateModalOpen) { const modalElement = document.getElementById("create-project-model"); const modal = new window.bootstrap.Modal(modalElement); modal.show(); } dispatch(changeMaster("JobRole")) }, [isCreateModalOpen]); return ( <> {isCreateModalOpen && ( )}
{" "}
{loading && (

Loading...

)} {projects?.map((item) => ( ))}
); }; export default ProjectList;