@@ -31,34 +31,35 @@ interface TeamCardProps {
3131
3232const MotionBox = motion ( Box )
3333
34- export const TeamLeadCard : React . FC < TeamCardProps > = ( { team} ) => {
34+ const formatTeamName = ( team : string ) : string => {
35+ return team [ 0 ] . toUpperCase ( ) + team . slice ( 1 ) + ' Team'
36+ } ;
3537
36- const formatTeamName = ( team : string ) : string => {
37- return team [ 0 ] . toUpperCase ( ) + team . slice ( 1 ) + ' Team'
38- } ;
38+ export const TeamLeadCard : React . FC < TeamCardProps > = ( { team} ) => {
3939
4040 const TEAM_NAME = formatTeamName ( team )
4141
4242 const { isOpen, onOpen, onClose } = useDisclosure ( )
4343 const [ teamMembers , setTeamMembers ] = useState < IMember [ ] > ( [ ] )
4444 const [ isLoading , setIsLoading ] = useState ( false )
45-
45+ const [ isError , setError ] = useState ( false )
4646
4747 const teamColor = COLOR_MAP [ team ]
4848 const borderColor = useColorModeValue ( `${ teamColor } .300` , `${ teamColor } .500` )
4949 const bgColor = useColorModeValue ( 'white' , 'gray.800' )
5050
5151 const handleClick = async ( ) => {
52-
5352 try {
5453 setIsLoading ( true )
5554 const teamLeads = await memberService . getMembersbyTeam ( team )
5655
5756 setTeamMembers ( teamLeads )
57+ setError ( false )
5858 onOpen ( )
5959
6060 } catch ( error ) {
6161 console . error ( 'Error fetching team members:' , error )
62+ setError ( true )
6263 } finally {
6364 setIsLoading ( false )
6465 }
@@ -81,19 +82,21 @@ export const TeamLeadCard: React.FC<TeamCardProps> = ({team}) => {
8182 >
8283 < VStack spacing = { 4 } align = 'center' >
8384 < Text fontWeight = 'bold' fontSize = 'xl' >
84- { ` ${ TEAM_NAME } ` }
85+ { isLoading ? 'Loading team leads...' : TEAM_NAME }
8586 </ Text >
87+ { isError && < Text color = 'red.500' > Error loading team leads</ Text > }
88+
8689 </ VStack >
8790 </ MotionBox >
88-
91+
8992 < Modal isOpen = { isOpen && ! isLoading } onClose = { onClose } >
9093 < ModalOverlay />
9194 < ModalContent >
92- < ModalHeader > { ` ${ TEAM_NAME } ` } </ ModalHeader >
95+ < ModalHeader > { TEAM_NAME } </ ModalHeader >
9396 < ModalCloseButton />
9497 < ModalBody >
9598 < VStack align = 'start' spacing = { 4 } >
96- < Heading size = 'md' > Team Members</ Heading >
99+ { /* <Heading size='md'>Team Members</Heading> */ }
97100 < List spacing = { 3 } width = '100%' >
98101 { teamMembers . map ( member => (
99102 < ListItem key = { member . memberId ?. toString ( ) } >
0 commit comments