Guest User

Untitled

a guest
May 10th, 2023
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. var isFetched = false
  2. const Timetable = () => {
  3. const [days, setDays] = useState<Day[]>([])
  4. var q
  5. onAuthStateChanged(auth, currentUser => {
  6. getCreds()
  7. })
  8. var ClassCode:string
  9. var DateOfBirth:string
  10. type Lesson = {name: string; room: string}
  11. type Day = Lesson[]
  12. const getCreds = async () => {
  13. const db = getFirestore()
  14. const colRef = collection(db, 'ClassCharts')
  15. q = query(colRef, where("id", "==", `${auth.currentUser?.uid}`))
  16. const querySnapshot = await getDocs(q)
  17. querySnapshot.forEach((doc) => {
  18. ClassCode = doc.get("Code")
  19. DateOfBirth = doc.get("DOB")
  20. fetchTimetable()
  21. });
  22. }
  23. const fetchTimetable = async () => {
  24. if (ClassCode != null && DateOfBirth != null && isFetched == false) {
  25. fetch("https://localhost:4000/api", {
  26. method: 'POST',
  27. headers: new Headers({
  28. "classCode" : ClassCode!,
  29. "dateOfBirth" : DateOfBirth!,
  30. })
  31. }).then(response => {
  32. return response.json()
  33. }).then(data => {
  34. setDays(data as Day)
  35. })
  36. isFetched = true
  37. }
  38. }
  39. return (
  40. <div>
  41. <div id='insertTemplate' className='grid grid-rows-1 grid-cols-5 gap-5 ml-1 w-11/12'>
  42. <div className='grid gap-1 place-content-start'>
  43. <div className='dayColor text-center'>Mon</div>
  44. {days[0] ? days[0].map(lesson => {
  45. return <LessonRoom lesson={lesson.name} room={lesson.room} />
  46. }) : null }
  47. </div>
  48. <div className='grid gap-1 place-content-start'>
  49. <div className='dayColor text-center'>Tue</div>
  50. {days[1] ? days[1].map(lesson => {
  51. return <LessonRoom lesson={lesson.name} room={lesson.room} />
  52. }) : null }
  53. </div>
  54. <div className='grid gap-1 place-content-start'>
  55. <div className='dayColor text-center'>Wed</div>
  56. {days[2] ? days[2].map(lesson => {
  57. return <LessonRoom lesson={lesson.name} room={lesson.room} />
  58. }) : null }
  59. </div>
  60. <div className='grid gap-1 place-content-start'>
  61. <div className='dayColor text-center'>Thu</div>
  62. {days[3] ? days[3].map(lesson => {
  63. return <LessonRoom lesson={lesson.name} room={lesson.room} />
  64. }) : null }
  65. </div>
  66. <div className='grid gap-1 place-content-start'>
  67. <div className='dayColor text-center'>Fri</div>
  68. {days[4] ? days[4].map(lesson => {
  69. return <LessonRoom lesson={lesson.name} room={lesson.room} />
  70. }) : null }
  71. </div>
  72. </div>
  73. </div>
  74. )
  75. }
  76.  
  77. export default Timetable
Advertisement
Add Comment
Please, Sign In to add comment