Advertisement
arlendafitranto

ProjectListdotjsx

Sep 24th, 2024 (edited)
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 3.95 KB | Source Code | 0 0
  1. import React, { useState, useEffect } from "react";
  2. import ActiveProject from "./ActiveProject";
  3. import ProjectModal from "./Modals/ProjectModal";
  4. import NotActiveProject from "./NotActiveProject";
  5.  
  6. export default function ProjectList({ projects, loading, updateProjectList }) {
  7.     const [pjModalShow, setPjModalShow] = useState(false);
  8.     const [pjModalTitle, setPjModalTitle] = useState(false);
  9.     const [editProjectData, setEditProjectData] = useState(null);
  10.  
  11.     const handlePjEdit = (id, currentProjects) => {
  12.         console.log("In handlePjEdit", projects);
  13.         const selectPj = projects.find((row) => row.id == id);
  14.         setEditProjectData(selectPj);
  15.         setPjModalShow(true);
  16.         setPjModalTitle("Edit");
  17.     };
  18.     // console.log("ProjectList rendered with projects:", projects);
  19.     useEffect(() => {
  20.         console.log("ProjectList: ", projects);
  21.     }, [projects]);
  22.  
  23.     return (
  24.         <div className="col-5">
  25.             <ProjectModal
  26.                 show={pjModalShow}
  27.                 handleClose={() => setPjModalShow(false)}
  28.                 title={pjModalTitle}
  29.                 editData={editProjectData}
  30.                 updateProjectList={updateProjectList}
  31.             />
  32.  
  33.             <div
  34.                 className="card"
  35.                 style={{ borderTop: "5px solid rgb(87, 164, 236)" }}
  36.             >
  37.                 <div className="card-header py-2">
  38.                     <div className="d-flex justify-content-between">
  39.                         <span>Project List</span>
  40.                         <button
  41.                             className="btn btn-sm btn-primary"
  42.                             onClick={() => {
  43.                                 setPjModalShow(true);
  44.                                 setPjModalTitle("Add New");
  45.                             }}
  46.                             disabled={loading}
  47.                         >
  48.                             <i className="fa-solid fa-circle-plus"></i> Add PJ
  49.                         </button>
  50.                     </div>
  51.                 </div>
  52.                 <div className="card-body">
  53.                     <nav>
  54.                         <div
  55.                             className="nav nav-tabs"
  56.                             id="nav-tab"
  57.                             role="tablist"
  58.                         >
  59.                             <button
  60.                                 className="nav-link active"
  61.                                 id="nav-active-tab"
  62.                                 data-bs-toggle="tab"
  63.                                 data-bs-target="#nav-active"
  64.                                 type="button"
  65.                                 role="tab"
  66.                                 aria-controls="nav-active"
  67.                                 aria-selected="true"
  68.                             >
  69.                                 Active
  70.                             </button>
  71.  
  72.                             <button
  73.                                 className="nav-link"
  74.                                 id="nav-deactive-tab"
  75.                                 data-bs-toggle="tab"
  76.                                 data-bs-target="#nav-deactive"
  77.                                 type="button"
  78.                                 role="tab"
  79.                                 aria-controls="nav-deactive"
  80.                                 aria-selected="false"
  81.                             >
  82.                                 Not Active
  83.                             </button>
  84.                         </div>
  85.                     </nav>
  86.                     <div className="tab-content" id="nav-tabContent">
  87.                         <ActiveProject
  88.                             projects={projects}
  89.                             loading={loading}
  90.                             handleEdit={handlePjEdit}
  91.                         />
  92.                         <NotActiveProject projects={projects} />
  93.                     </div>
  94.                 </div>
  95.             </div>
  96.         </div>
  97.     );
  98. }
  99.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement