From a9534dbd9609424594aa849e163f171b66f27392 Mon Sep 17 00:00:00 2001 From: TobbleCobble Date: Sat, 10 Jan 2026 04:49:34 +0000 Subject: [PATCH] lint fix --- .env.prod.example | 6 +- client/src/components/timetable_task.tsx | 2 +- .../src/components/ui/focus/timeDisplay.tsx | 4 +- .../src/components/ui/focus/upcomingTasks.tsx | 22 ++-- client/src/pages/focus.tsx | 102 +++++++++++++----- client/src/pages/tasks.tsx | 9 +- 6 files changed, 101 insertions(+), 44 deletions(-) diff --git a/.env.prod.example b/.env.prod.example index f0e14ef..721932f 100644 --- a/.env.prod.example +++ b/.env.prod.example @@ -1,15 +1,15 @@ # FRONTEND APP_ENV=PRODUCTION -NEXT_PUBLIC_BACKEND_URL="https://xxxx.codersforcauses.org/api" +NEXT_PUBLIC_BACKEND_URL="https://lonkedin.mythosmc.com/api" # BACKEND APP_NAME=DjangoAPI API_SECRET_KEY= CHANGE THIS TO A RANDOM STRING -API_ALLOWED_HOSTS=".localhost 127.0.0.1 [::1] .codersforcauses.org" +API_ALLOWED_HOSTS=".localhost 127.0.0.1 [::1] .mythosmc.com" DJANGO_SUPERUSER_PASSWORD= CHANGE THIS TO A RANDOM STRING DJANGO_SUPERUSER_EMAIL= CHANGE THIS TO A VALID EMAIL DJANGO_SUPERUSER_USERNAME= CHANGE THIS TO A VALID USERNAME -FRONTEND_URL="https://xxxx.codersforcauses.org/" +FRONTEND_URL="https://lonkedin.mythosmc.com/" diff --git a/client/src/components/timetable_task.tsx b/client/src/components/timetable_task.tsx index ee23336..70e53f1 100644 --- a/client/src/components/timetable_task.tsx +++ b/client/src/components/timetable_task.tsx @@ -141,7 +141,7 @@ export function resizeAndPositionTimetableTasks() { const tasks = document.getElementsByClassName("timetable-task"); for (let i = 0; i < tasks.length; i++) { const task = tasks[i]; - resizeAndPositionTimetableTask(task); + resizeAndPositionTimetableTask(task as HTMLElement); } } diff --git a/client/src/components/ui/focus/timeDisplay.tsx b/client/src/components/ui/focus/timeDisplay.tsx index 05d8839..5db0473 100644 --- a/client/src/components/ui/focus/timeDisplay.tsx +++ b/client/src/components/ui/focus/timeDisplay.tsx @@ -22,8 +22,8 @@ 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; - var day_diff = ((day - d.getDay() + 8) % 8) * 24 * 60 * 60 + const time_serial = Hours * 60 * 60 + Mins * 60 + Sec; + const day_diff = ((day - d.getDay() + 8) % 8) * 24 * 60 * 60; const cur_time = d.getHours() * 60 * 60 + d.getMinutes() * 60 + d.getSeconds(); diff --git a/client/src/components/ui/focus/upcomingTasks.tsx b/client/src/components/ui/focus/upcomingTasks.tsx index 00e52a7..08e7e08 100644 --- a/client/src/components/ui/focus/upcomingTasks.tsx +++ b/client/src/components/ui/focus/upcomingTasks.tsx @@ -22,7 +22,15 @@ function serializeTime(time: string) { return Hours * 60 * 60 + Mins * 60 + Sec; } -export default function UpcomingTasks({ tasks, times, refresh }: { tasks: Task[], times:Time[], refresh : Boolean}) { +export default function UpcomingTasks({ + tasks, + times, + refresh, +}: { + tasks: Task[]; + times: Time[]; + refresh: boolean; +}) { const [upcomingTimes, setUpcomingTimes] = useState([]); useEffect(() => { @@ -55,12 +63,12 @@ export default function UpcomingTasks({ tasks, times, refresh }: { tasks: Task[]
{upcomingTimes.map((time: Time, index) => ( <> - task.id === time.task)[0]} - time={time} - key={time.id} - current={index===0} - /> + task.id === time.task)[0]} + time={time} + key={time.id} + current={index === 0} + /> ))}
diff --git a/client/src/pages/focus.tsx b/client/src/pages/focus.tsx index f0276f8..9f3978b 100644 --- a/client/src/pages/focus.tsx +++ b/client/src/pages/focus.tsx @@ -1,9 +1,9 @@ +import { useRouter } from "next/router"; 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 { useRouter } from "next/router"; interface Time { id: number; @@ -77,7 +77,6 @@ const CountdownTimer = () => { const result = await tasksFetch.json(); console.log("tasks: ", result); setTasks(result); - } catch (error) { console.error(error); } @@ -87,20 +86,7 @@ const CountdownTimer = () => { }, [router]); useEffect(() => { - var task_times : Time[] = []; - for (let index = 0; index < tasks.length; index++) { - const task = tasks[index]; - for (let i = 0; i < task.times.length; i++) { - task_times = task_times.concat(task.times[i]) - console.log("new time: ", task.times[i]); - } - } - setTimes(task_times); - console.log("times: ", task_times); - getCurrentTask(task_times); - }, [tasks]) - - function getCurrentTask(ts: Time[]) { + function getCurrentTask(ts: Time[]) { let upcomingTimes: Time[]; const d = new Date(); @@ -110,7 +96,9 @@ const CountdownTimer = () => { // filter out finished tasks upcomingTimes = ts.filter((time) => { - return !(cur_d == time.day && serializeTime(time.end_time) <= cur_time + 10); + return !( + cur_d == time.day && serializeTime(time.end_time) <= cur_time + 10 + ); }); // sort by start time @@ -118,7 +106,8 @@ const CountdownTimer = () => { return ( serializeTime(a.start_time) + ((a.day + 8 - cur_d) % 8) * 24 * 60 * 60 - - (serializeTime(b.start_time) + ((b.day + 8 - cur_d) % 8) * 24 * 60 * 60) + (serializeTime(b.start_time) + + ((b.day + 8 - cur_d) % 8) * 24 * 60 * 60) ); }); @@ -129,9 +118,11 @@ const CountdownTimer = () => { upcomingTimes[0].day == cur_d ) { setCurrentTime(upcomingTimes[0]); - - const cur_task = tasks.filter((task) => task.id === upcomingTimes[0]?.task); - console.log(tasks, cur_task) + + const cur_task = tasks.filter( + (task) => task.id === upcomingTimes[0]?.task, + ); + console.log(tasks, cur_task); setCurrentTask(cur_task[0]); } else { setCurrentTime(null); @@ -144,6 +135,67 @@ const CountdownTimer = () => { } } + let task_times: Time[] = []; + for (let index = 0; index < tasks.length; index++) { + const task = tasks[index]; + for (let i = 0; i < task.times.length; i++) { + task_times = task_times.concat(task.times[i]); + console.log("new time: ", task.times[i]); + } + } + setTimes(task_times); + console.log("times: ", task_times); + getCurrentTask(task_times); + }, [tasks]); + + function getCurrentTask(ts: Time[]) { + let upcomingTimes: Time[]; + + const d = new Date(); + const cur_time = + d.getHours() * 60 * 60 + d.getMinutes() * 60 + d.getSeconds(); + const cur_d = d.getDay(); + + // filter out finished tasks + upcomingTimes = ts.filter((time) => { + return !( + cur_d == time.day && serializeTime(time.end_time) <= cur_time + 10 + ); + }); + + // sort by start time + upcomingTimes = upcomingTimes.sort((a, b) => { + return ( + serializeTime(a.start_time) + + ((a.day + 8 - cur_d) % 8) * 24 * 60 * 60 - + (serializeTime(b.start_time) + ((b.day + 8 - cur_d) % 8) * 24 * 60 * 60) + ); + }); + + // logic for if there are no tasks currently or at all + if (upcomingTimes.length > 0) { + if ( + serializeTime(upcomingTimes[0].start_time) < cur_time && + upcomingTimes[0].day == cur_d + ) { + setCurrentTime(upcomingTimes[0]); + + const cur_task = tasks.filter( + (task) => task.id === upcomingTimes[0]?.task, + ); + console.log(tasks, cur_task); + setCurrentTask(cur_task[0]); + } else { + setCurrentTime(null); + setCurrentTask(null); + setNextTime(upcomingTimes[0]); + } + } else { + setCurrentTime(null); + setNextTime(null); + } + } + function onTaskEnd(status: string) { if (status == "finished") { setRefresh(!refresh); @@ -152,7 +204,7 @@ const CountdownTimer = () => { } return ( -
+

Focus

@@ -194,16 +246,14 @@ const CountdownTimer = () => {
tasks
- +
) : ( <> )}
-
- -
+
); diff --git a/client/src/pages/tasks.tsx b/client/src/pages/tasks.tsx index dd30660..13ea0c3 100644 --- a/client/src/pages/tasks.tsx +++ b/client/src/pages/tasks.tsx @@ -32,7 +32,6 @@ export default function TasksPage() { const router = useRouter(); const [userId, setUserId] = useState(null); const [items, setItems] = useState([]); - const [loading, setLoading] = useState(true); const [availableTopics, setAvailableTopics] = useState([]); const [showAddTask, setShowAddTask] = useState(false); @@ -78,7 +77,7 @@ export default function TasksPage() { } catch (err) { console.error("Failed to load tasks:", err); } finally { - setLoading(false); + //setLoading(false); } } fetchData(); @@ -166,9 +165,9 @@ export default function TasksPage() {
-

- Tasks -

+

+ Tasks +