import timetable from '../../utils/timetable.json'; import { useSession, signIn } from "next-auth/react" import style from '../styles/Home.module.css'; import {useState} from "react"; const days = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"]; function currentTimeTable(_day_diff = null) { let now = new Date(); if(_day_diff) { now = new Date(now.valueOf() + (86400 * _day_diff)) } let day = days[now.getDay()]; const today_timetable = timetable[day]; return today_timetable || [] } function is_old(lesson, now) { let lesson_start = new Date(); lesson_start.setHours(lesson.start[0], lesson.start[1], 0) let lesson_end = new Date(); lesson_end.setHours(lesson.end[0], lesson.end[1], 0); if(lesson_end > now) { return true; } } function currentLesson() { const now = new Date(); const date = now.toLocaleDateString("en-GB"); const time = now.toLocaleTimeString("en-GB"); const hour = parseInt(time.split(":")[0]); const minute = parseInt(time.split(":")[1]); const day = days[now.getDay()]; const today_timetable = currentTimeTable(); console.debug( now, date, time, hour, minute, day, today_timetable ) for(let lesson of today_timetable) { let lesson_start = new Date(); lesson_start.setHours(lesson.start[0], lesson.start[1], 0) let lesson_end = new Date(); lesson_end.setHours(lesson.end[0], lesson.end[1], 0); if(lesson_end > now) { if(lesson_start <= now) { console.debug("Returning", lesson) lesson.start_timestamp = lesson_start.valueOf() lesson.end_timestamp = lesson_end.valueOf() return lesson } } } return { "name": "No Current Lesson", "start": [0, 0], "end": [0, 0], "tutor": "", "room": "", "start_timestamp": (new Date()).setHours(0, 0, 0), "end_timestamp": (new Date()).setHours(23, 59, 59) } } function normaliseTime(t) { return `${t[0].toString().padStart(2, "0")}:${t[1].toString().padStart(2, "0")}` } function TimeTableBlock(props) { const lesson = props.lesson; let [open, setOpen] = useState(false); const _onClick = () => {setOpen(!open)}; return (

{lesson.name || 'error'}

) } export default function Home() { let [dayOfTheWeek, setDay] = useState((new Date()).getDay()); const incrementDay = (by) => { let new_DOTW = dayOfTheWeek + by; if(new_DOTW>6) { new_DOTW = 0 } else if (new_DOTW < 0) { new_DOTW = 6 } setDay(new_DOTW); } const { data: session } = useSession(); if(!session) { return (
) } let current_lesson = currentLesson(); // let current_timetable = currentTimeTable(dayOfTheWeek); return (

Hello, {session.user.name}.

Current lesson:

{current_lesson.name}




Full timetable:

{days[dayOfTheWeek]}

{ currentTimeTable(dayOfTheWeek).map( (lesson) => { return } ) }
) }