Advertisement
arlendafitranto

Projectdotjsx

Sep 24th, 2024
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 2.27 KB | Source Code | 0 0
  1. import { useEffect, useState } from "react";
  2. import ProjectList from "./Partials/ProjectList";
  3. import ProjectPartList from "./Partials/ProjectPartList";
  4.  
  5. export default function Project() {
  6.     const [projects, setProjects] = useState(null);
  7.     const [masterParts, setMasterParts] = useState(null);
  8.     const [loading, setLoading] = useState(false);
  9.  
  10.     const fetchProject = async () => {
  11.         setLoading(true);
  12.         try {
  13.             const res = await axios.get("/api/admin/project");
  14.             const data = res.data.data;
  15.             setProjects(data.projects);
  16.             setMasterParts(data.master_parts);
  17.             // console.log(data);
  18.         } catch (error) {
  19.             console.log(err);
  20.         } finally {
  21.             setLoading(false);
  22.         }
  23.     };
  24.  
  25.     const updateProjectList = (updatedProject) => {
  26.         setProjects((prevPj) => {
  27.             const index = prevPj.findIndex((pj) => pj.id == updatedProject.id);
  28.  
  29.             if (index !== -1) {
  30.                 const newProjects = [...prevPj];
  31.                 newProjects[index] = updatedProject;
  32.                 // console.log("Updated Projects:", newProjects);
  33.                 return newProjects;
  34.             } else {
  35.                 return [...prevPj, updatedProject];
  36.             }
  37.         });
  38.     };
  39.  
  40.     useEffect(() => {
  41.         const fetchProject = async () => {
  42.             setLoading(true);
  43.             try {
  44.                 const res = await axios.get("/api/admin/project");
  45.                 const data = res.data.data;
  46.                 setProjects(data.projects);
  47.                 setMasterParts(data.master_parts);
  48.                 // console.log(data);
  49.             } catch (error) {
  50.                 console.log(err);
  51.             } finally {
  52.                 setLoading(false);
  53.             }
  54.         };
  55.  
  56.         fetchProject();
  57.     }, []);
  58.  
  59.     useEffect(() => {
  60.         console.log("Project: ", projects);
  61.     }, [projects]);
  62.  
  63.     return (
  64.         <div className="row">
  65.             {/* Project List */}
  66.             <ProjectList
  67.                 projects={projects}
  68.                 loading={loading}
  69.                 updateProjectList={updateProjectList}
  70.             />
  71.             <ProjectPartList projects={projects} loading={loading} />
  72.         </div>
  73.     );
  74. }
  75.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement