@@ -812,7 +814,9 @@ export function AttendanceCalendar({
No Classes Found
Enjoy your free time! No classes recorded for this date.
-
+ {shouldShowJumpToToday && (
+
+ )}
)}
diff --git a/src/components/attendance/course-card.tsx b/src/components/attendance/course-card.tsx
index b0d119d6..15768608 100644
--- a/src/components/attendance/course-card.tsx
+++ b/src/components/attendance/course-card.tsx
@@ -4,10 +4,10 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Course } from "@/types";
import { useCourseDetails } from "@/hooks/courses/attendance";
-import { AlertCircle } from "lucide-react";
+import { AlertCircle, Loader2 } from "lucide-react";
import { calculateAttendance } from "@/lib/logic/bunk";
import { useAttendanceSettings } from "@/providers/attendance-settings";
-import { useState, useEffect, useMemo, useCallback } from "react";
+import { useState, useEffect, useMemo, useCallback, useRef } from "react";
import { useTrackingData } from "@/hooks/tracker/useTrackingData";
import { useUser } from "@/hooks/users/user";
import { createClient } from "@/lib/supabase/client";
@@ -96,6 +96,7 @@ export function CourseCard({ course }: CourseCardProps) {
academicYear: academicYearData,
semester: semesterData,
});
+ const hasSemesterContext = Boolean(academicYearData && semesterData);
// undefined when course.code is missing — guards against creating a "" key in disabled_courses.
const courseCode = course.code ? course.code.toUpperCase() : undefined;
const disabled = courseCode ? isCourseDisabled(courseCode) : false;
@@ -105,6 +106,10 @@ export function CourseCard({ course }: CourseCardProps) {
const [showEnableDialog, setShowEnableDialog] = useState(false);
const [disableReason, setDisableReason] = useState