diff --git a/client/src/components/ui/focus/taskDisplay.tsx b/client/src/components/ui/focus/taskDisplay.tsx index 9fc30ee..5a094f1 100644 --- a/client/src/components/ui/focus/taskDisplay.tsx +++ b/client/src/components/ui/focus/taskDisplay.tsx @@ -16,12 +16,14 @@ interface Time { export default function TaskDisplay({ task, time, + current }: { task: Task; time: Time; + current: Boolean; }) { return ( -
+
{task.name}:
diff --git a/client/src/components/ui/focus/timeDisplay.tsx b/client/src/components/ui/focus/timeDisplay.tsx index 965ffd9..05d8839 100644 --- a/client/src/components/ui/focus/timeDisplay.tsx +++ b/client/src/components/ui/focus/timeDisplay.tsx @@ -6,12 +6,14 @@ interface TimeDisplayProps { statusSignal: (data: string) => void; time: string; current: boolean; + day: number; } export default function TimeDisplay({ statusSignal, time, current, + day, }: TimeDisplayProps) { const [timeRemaining, setTimeRemaining] = useState(0); @@ -20,13 +22,15 @@ export default function TimeDisplay({ const [Hours, Mins, Sec] = time.split(":").map(Number); const d = new Date(); - const time_serial = Hours * 60 * 60 + Mins * 60 + Sec; + const time_serial = Hours * 60 * 60 + Mins * 60 + Sec; + var day_diff = ((day - d.getDay() + 8) % 8) * 24 * 60 * 60 + const cur_time = d.getHours() * 60 * 60 + d.getMinutes() * 60 + d.getSeconds(); let remaining_time = 0; - remaining_time = time_serial - cur_time; + remaining_time = time_serial - cur_time + day_diff; if (remaining_time <= 1) { clearInterval(getTimeRemaining); } @@ -35,7 +39,7 @@ export default function TimeDisplay({ }, 1000); return () => clearInterval(getTimeRemaining); - }, [time, timeRemaining]); + }, [time, timeRemaining, day]); useEffect(() => { if (timeRemaining <= 1) { diff --git a/client/src/components/ui/focus/upcomingTasks.tsx b/client/src/components/ui/focus/upcomingTasks.tsx index 95d3236..00e52a7 100644 --- a/client/src/components/ui/focus/upcomingTasks.tsx +++ b/client/src/components/ui/focus/upcomingTasks.tsx @@ -17,17 +17,12 @@ interface Time { task: number; } -interface Tasks { - tasks: Task[]; - times: Time[]; -} - function serializeTime(time: string) { const [Hours, Mins, Sec] = time.split(":").map(Number); return Hours * 60 * 60 + Mins * 60 + Sec; } -export default function UpcomingTasks({ tasks, times }: Tasks) { +export default function UpcomingTasks({ tasks, times, refresh }: { tasks: Task[], times:Time[], refresh : Boolean}) { const [upcomingTimes, setUpcomingTimes] = useState([]); useEffect(() => { @@ -53,17 +48,20 @@ export default function UpcomingTasks({ tasks, times }: Tasks) { } sortTimes(); - }, [times, tasks]); + }, [times, tasks, refresh]); return (
- {upcomingTimes.map((time: Time) => ( + {upcomingTimes.map((time: Time, index) => ( + <> task.id === time.task)[0]} time={time} key={time.id} + current={index===0} /> + ))}
diff --git a/client/src/components/ui/timeDisplay.tsx b/client/src/components/ui/timeDisplay.tsx index 965ffd9..9b5e3b7 100644 --- a/client/src/components/ui/timeDisplay.tsx +++ b/client/src/components/ui/timeDisplay.tsx @@ -11,7 +11,7 @@ interface TimeDisplayProps { export default function TimeDisplay({ statusSignal, time, - current, + current }: TimeDisplayProps) { const [timeRemaining, setTimeRemaining] = useState(0); diff --git a/client/src/pages/focus.tsx b/client/src/pages/focus.tsx index fd4fc5f..8a44e9a 100644 --- a/client/src/pages/focus.tsx +++ b/client/src/pages/focus.tsx @@ -3,7 +3,7 @@ import React, { useEffect, useState } from "react"; import CurrentTaskTitle from "@/components/ui/focus/currentTaskTitle"; import TimeDisplay from "@/components/ui/focus/timeDisplay"; import UpcomingTasks from "@/components/ui/focus/upcomingTasks"; -import Refresh from "@/components/ui/refresh"; +import { useRouter } from "next/router"; interface Time { id: number; @@ -14,10 +14,19 @@ interface Time { task: number; } +interface Topic { + id: number; + name: string; + color_hex: number; +} + interface Task { id: number; name: string; + completed: boolean; description: string; + times: Time[]; + topics: Topic[]; } function serializeTime(time: string) { @@ -26,94 +35,118 @@ function serializeTime(time: string) { } const CountdownTimer = () => { + const router = useRouter(); const [times, setTimes] = useState([]); const [tasks, setTasks] = useState([]); const [currentTime, setCurrentTime] = useState
- {times.length > 1 ? ( + {tasks.length > 0 ? (
- upcoming + tasks
- +
) : ( <> @@ -167,7 +202,7 @@ const CountdownTimer = () => {
- +