@@ -4,6 +4,7 @@ import { api } from '@/api/api';
44import { CDN_URL } from '@/constants/constants' ;
55import type { IActivity } from '@/types/IActivity' ;
66import type { IClassroom } from '@/types/IClassroomCard' ;
7+ import type { IUser } from '@/types/IUser' ;
78import {
89 Avatar ,
910 Box ,
@@ -31,28 +32,30 @@ import { useEffect, useState } from 'react';
3132import { FiCode , FiFileText , FiPlus , FiUsers } from 'react-icons/fi' ;
3233import ActivityCard from '../general/ActivityCard' ;
3334import CreateActivityModal from '../modals/CreateActivityModal' ;
34- import type { IUser } from '@/types/IUser' ;
3535
3636export default function ClassScreen ( { id } : Readonly < { id : string } > ) {
3737 const [ classroom , setClassroom ] = useState < IClassroom | null > ( null ) ;
3838 const [ isLoading , setIsLoading ] = useState ( true ) ;
3939 const router = useRouter ( ) ;
4040 const [ classActivities , setClassActivities ] = useState < IActivity [ ] > ( [ ] ) ;
4141 const [ classMembers , setClassMembers ] = useState < IUser [ ] > ( [ ] ) ;
42+ const [ professor , setProfessor ] = useState < IUser | null > ( null ) ;
4243 const [ isMembersLoading , setIsMembersLoading ] = useState ( false ) ;
4344 const { isOpen, onOpen, onClose } = useDisclosure ( ) ;
4445 const toast = useToast ( ) ;
4546
4647 useEffect ( ( ) => {
4748 const fetchData = async ( ) => {
4849 try {
49- const [ classroomData , activitiesData ] = await Promise . all ( [
50+ const [ classroomData , activitiesData , professorData ] = await Promise . all ( [
5051 api . classroom . getById ( id ) ,
51- api . activities . getByClassroom ( id )
52+ api . activities . getByClassroom ( id ) ,
53+ api . classroom . getProfessor ( id )
5254 ] ) ;
5355
5456 setClassroom ( classroomData ) ;
5557 setClassActivities ( activitiesData ) ;
58+ setProfessor ( professorData ) ;
5659 } catch ( error ) {
5760 toast ( {
5861 title : 'Error' ,
@@ -76,7 +79,6 @@ export default function ClassScreen({ id }: Readonly<{ id: string }>) {
7679 } ;
7780
7881 const handleTabChange = async ( index : number ) => {
79- // Index 1 is the "Estudiantes" tab
8082 if ( index === 1 && classMembers . length === 0 ) {
8183 setIsMembersLoading ( true ) ;
8284 try {
@@ -150,7 +152,7 @@ export default function ClassScreen({ id }: Readonly<{ id: string }>) {
150152 < Flex gap = { 6 } color = 'gray.400' >
151153 < Flex align = 'center' gap = { 2 } >
152154 < Icon as = { FiUsers } />
153- < Text > { classMembers . length || '...' } estudiantes</ Text >
155+ < Text > { classroom . memberCount } estudiantes</ Text >
154156 </ Flex >
155157 < Flex align = 'center' gap = { 2 } >
156158 < Icon as = { FiCode } />
@@ -160,12 +162,8 @@ export default function ClassScreen({ id }: Readonly<{ id: string }>) {
160162 </ Stack >
161163
162164 < VStack spacing = { 2 } align = 'center' >
163- < Avatar
164- size = 'xl'
165- name = { classroom . owner }
166- src = 'https://avatars.githubusercontent.com/u/57068341?v=4'
167- />
168- < Text color = 'gray.300' > Ángel</ Text >
165+ < Avatar size = 'xl' name = { professor ?. username } src = { professor ?. avatar ?? '' } />
166+ < Text color = 'gray.300' > { professor ?. username } </ Text >
169167 </ VStack >
170168 </ Grid >
171169 </ Container >
0 commit comments