1- import { useEffect , useState } from 'react' ;
1+ import { useEffect } from 'react' ;
22import { useParams } from 'react-router-dom' ;
33import { useSelector , useDispatch } from 'react-redux' ;
44import { Container , Row , Col } from 'reactstrap' ;
5- import { fetchBMProjects } from '~/actions/bmdashboard/projectActions' ;
5+ import { fetchBMProjects } from '../../../../actions/bmdashboard/projectActions' ;
6+ import { fetchBMProjectMembers } from '../../../../actions/bmdashboard/projectMemberAction' ;
7+ import { getAllUserTeams } from '../../../../actions/allTeamsAction' ;
68import Loading from '~/components/common/Loading' ;
79import LogBar from './LogBar' ;
810import RentedToolsDisplay from './RentedTools/RentedToolsDisplay' ;
@@ -13,31 +15,30 @@ import styles from './ProjectDetails.module.css';
1315function ProjectDetails ( ) {
1416 const { projectId } = useParams ( ) ;
1517 const dispatch = useDispatch ( ) ;
16- const darkMode = useSelector ( state => state . theme . darkMode ) ;
18+
1719 const projects = useSelector ( state => state . bmProjects ) || [ ] ;
18- const [ isLoading , setIsLoading ] = useState ( true ) ;
19- const currProject = projects . find ( project => String ( project . _id ) === String ( projectId ) ) ;
20+ const darkMode = useSelector ( state => state . theme . darkMode ) ;
2021
2122 useEffect ( ( ) => {
22- const fetchProjects = async ( ) => {
23- setIsLoading ( true ) ;
24- try {
25- await dispatch ( fetchBMProjects ( ) ) ;
26- } finally {
27- setIsLoading ( false ) ;
28- }
29- } ;
30- fetchProjects ( ) ;
31- } , [ dispatch , projectId ] ) ;
23+ if ( projectId ) {
24+ dispatch ( fetchBMProjectMembers ( projectId ) ) ;
25+ dispatch ( getAllUserTeams ( ) ) ;
26+ }
27+ if ( projects . length === 0 ) {
28+ dispatch ( fetchBMProjects ( ) ) ;
29+ }
30+ } , [ projectId , dispatch , projects . length ] ) ;
3231
33- if ( isLoading ) {
32+ if ( projects . length === 0 ) {
3433 return (
3534 < Container className = { `${ styles [ 'project-details' ] } text-center mt-5` } >
3635 < Loading align = "center" darkMode = { darkMode } />
3736 </ Container >
3837 ) ;
3938 }
4039
40+ const currProject = projects . find ( project => String ( project . _id ) === String ( projectId ) ) ;
41+
4142 if ( ! currProject ) {
4243 return (
4344 < Container className = { `${ styles [ 'project-details' ] } text-center mt-5` } >
@@ -50,14 +51,14 @@ function ProjectDetails() {
5051 return (
5152 < Container
5253 fluid
53- className = { `${ darkMode ? styles [ 'project-details-dark' ] : styles [ 'project-details' ] } ` }
54+ className = { `${ darkMode ? styles [ 'project-details-dark' ] : styles [ 'project-details' ] } ` }
5455 >
5556 < Row className = "justify-content-center" >
5657 < Col xs = "12" lg = "10" >
5758 < h1
5859 className = { `${
5960 darkMode ? styles [ 'project-details-title-dark' ] : styles [ 'project-details-title' ]
60- } mb-2 `}
61+ } mb-2`}
6162 >
6263 { currProject . name } Dashboard{ ' ' }
6364 </ h1 >
0 commit comments