Bläddra i källkod

fix: student analysis

Insouciant21 6 månader sedan
förälder
incheckning
dfe6a1fdea
2 ändrade filer med 10 tillägg och 2 borttagningar
  1. 6 1
      app/(dashboard)/analysis/AnalysisDashboard.tsx
  2. 4 1
      components/MetricsContent.tsx

+ 6 - 1
app/(dashboard)/analysis/AnalysisDashboard.tsx

@@ -6,10 +6,15 @@ import { useSearchParams } from "next/navigation";
 import { Target, ShieldCheck, Cpu, Code2, User } from "lucide-react";
 import { metricsData } from "@/components/metricsData";
 import { getMockStudentById } from "@/lib/mockApi";
+import { useAuth } from "@/components/AuthProvider";
 
 function AnalysisDashboardContent() {
   const searchParams = useSearchParams();
-  const studentId = searchParams.get("student");
+  const { user } = useAuth();
+  
+  // If there's a ?student= param in the URL (from Teacher Dashboard drill-down), use it.
+  // Otherwise, if we are logged in as a student, use our own ID.
+  const studentId = searchParams.get("student") || (user?.role === 'stu' ? user.id : null);
   const student = studentId ? getMockStudentById(studentId) : null;
 
   // Helper function to colorize cells like a thermal heatmap based on parsed average score

+ 4 - 1
components/MetricsContent.tsx

@@ -11,10 +11,13 @@ import {
 import { useSearchParams } from "next/navigation";
 import { metricsData } from "./metricsData";
 import { getMockStudentById } from "@/lib/mockApi";
+import { useAuth } from "@/components/AuthProvider";
 
 export default function MetricsContent({ metricId }: { metricId: string }) {
   const searchParams = useSearchParams();
-  const studentId = searchParams.get("student");
+  const { user } = useAuth();
+  
+  const studentId = searchParams.get("student") || (user?.role === 'stu' ? user.id : null);
   const student = studentId ? getMockStudentById(studentId) : null;
 
   const categoryStr = metricId.charAt(0).toUpperCase();