11import React from 'react' ;
22import { useIndividualAttendanceQuery } from '../../generated/graphql' ;
33import { useParams } from 'react-router' ;
4+ import { useNavigate } from 'react-router-dom' ;
5+ import { useSelector , useDispatch } from 'react-redux' ;
46import { ReactComponent as CheckBoxChecked } from '../../Assets/chekcbox-checked.svg' ;
57import { ReactComponent as CheckBoxCrossed } from '../../Assets/chekcbox-cross.svg' ;
68import moment from 'moment' ;
9+ import Student from '../../Types/student' ;
10+
11+ const btnStyle = 'flex bg-green text-white p-4 shadow-lg m-auto my-8' ;
712
813const StudentHistory : React . FC = ( ) => {
14+ const navigate = useNavigate ( ) ;
915 const courseId = Number ( useParams ( ) . courseId ) ;
1016 const studentId = Number ( useParams ( ) . studentId ) ;
11- const name = 'Friend' ;
12- const lastname = 'buddy' ;
17+ const studentState = useSelector (
18+ ( state : { student : Student | null } ) => state . student
19+ ) ;
20+ const sessionId = useSelector (
21+ ( state : { sessionId : number | null } ) => state . sessionId
22+ ) ;
23+ let name ;
24+ let lastname ;
25+
26+ if ( studentState ) {
27+ name = studentState . name ;
28+ lastname = studentState . lastname ;
29+ }
1330
1431 const [ { fetching, data, error } ] = useIndividualAttendanceQuery ( {
1532 variables : { courseId, studentId } ,
@@ -20,12 +37,22 @@ const StudentHistory: React.FC = () => {
2037 if ( error ) {
2138 } // TODO handle error
2239
40+ function handleClick ( ) {
41+ console . log ( 'click back from studenthistory' , { sessionId } ) ;
42+ navigate ( `/homepage/classes/${ courseId } /${ sessionId } ` ) ;
43+ }
44+
2345 const indivHistory = data ?. getIndividualAttendance ?. data ; // returns {attended, date}
2446
2547 if ( indivHistory ) {
2648 return (
2749 < div >
28- < h1 className = "flex justify-center text-lg md:text-xl" > { name } { lastname } </ h1 >
50+ < h1 className = "flex justify-center text-lg md:text-xl" >
51+ { name } { lastname }
52+ </ h1 >
53+ < button className = { btnStyle } onClick = { handleClick } >
54+ Back to session overview
55+ </ button >
2956 < section className = "flex justify-center h-1/4 md:h-1/2 lg:h-5/6 xl:h-screen p-4" >
3057 < div className = " flex flex-row flex-wrap justify-start bg-white w-11/12 md:h-2/3 lx:w-9/12 overflow-scroll border-green border-8" >
3158 { indivHistory . map ( ( session ) => {
@@ -52,34 +79,3 @@ const StudentHistory: React.FC = () => {
5279} ;
5380
5481export default StudentHistory ;
55-
56- // return (
57- // <div>
58- // {!!studentsAttended &&
59- // studentList?.map((student) => {
60- // if (
61- // studentsAttended.some(
62- // (attendee) => attendee?.email === student?.email
63- // )
64- // ) {
65- // return <CheckBoxChecked className="w-10 h-10" />;
66- // }
67- // return <CheckBoxCrossed className="w-10 h-10" />;
68- // }) }
69- // </div>
70- // );
71-
72- // if (session) {
73- // const date = new Date(Number(session.createdAt));
74- // const UTCdate = date.toUTCString();
75- // return (
76- // <div className="w-26 p-2 md:w-32 text-center border-2 border-black m-1 hover:bg-green-xlight">
77- // <Link to={`/homepage/classes/${courseId}/${session.id}` }>
78- // <div>
79- // <h5 className="text-lg sm:text-xl">{session.attendance}</h5>
80- // <p className="text-sm sm:text-md">{moment(UTCdate).format('L')}</p>
81- // </div>
82- // </Link>
83- // </div>
84- // );
85- // }
0 commit comments