diff --git a/src/app/(dashboard)/student/practice/error.tsx b/src/app/(dashboard)/student/practice/error.tsx
index 33012d5..1715ae7 100644
--- a/src/app/(dashboard)/student/practice/error.tsx
+++ b/src/app/(dashboard)/student/practice/error.tsx
@@ -1,8 +1,8 @@
"use client"
-import { useEffect } from "react"
import { useTranslations } from "next-intl"
import { Button } from "@/shared/components/ui/button"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
export default function PracticeError({
error,
@@ -12,9 +12,7 @@ export default function PracticeError({
reset: () => void
}): React.ReactNode {
const t = useTranslations("student")
- useEffect(() => {
- console.error("Practice page error:", error)
- }, [error])
+ useErrorReport(error)
return (
diff --git a/src/app/(dashboard)/student/schedule/error.tsx b/src/app/(dashboard)/student/schedule/error.tsx
index 8ca2e03..3261a0c 100644
--- a/src/app/(dashboard)/student/schedule/error.tsx
+++ b/src/app/(dashboard)/student/schedule/error.tsx
@@ -1,6 +1,7 @@
"use client"
import { ErrorState } from "@/shared/components/error-state"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
export default function StudentScheduleError({
error,
@@ -9,5 +10,6 @@ export default function StudentScheduleError({
error: Error & { digest?: string }
reset: () => void
}) {
+ useErrorReport(error)
return
}
diff --git a/src/app/(dashboard)/teacher/attendance/error.tsx b/src/app/(dashboard)/teacher/attendance/error.tsx
index edd24af..8c8e3f3 100644
--- a/src/app/(dashboard)/teacher/attendance/error.tsx
+++ b/src/app/(dashboard)/teacher/attendance/error.tsx
@@ -1,7 +1,9 @@
"use client"
import { RouteErrorBoundary } from "@/shared/components/route-error"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
-export default function TeacherAttendanceError({ reset }: { error: Error & { digest?: string }; reset: () => void }) {
+export default function TeacherAttendanceError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
+ useErrorReport(error)
return
}
diff --git a/src/app/(dashboard)/teacher/attendance/report/error.tsx b/src/app/(dashboard)/teacher/attendance/report/error.tsx
index 4619090..e19fe0c 100644
--- a/src/app/(dashboard)/teacher/attendance/report/error.tsx
+++ b/src/app/(dashboard)/teacher/attendance/report/error.tsx
@@ -1,7 +1,9 @@
"use client"
import { RouteErrorBoundary } from "@/shared/components/route-error"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
-export default function AttendanceReportError({ reset }: { error: Error & { digest?: string }; reset: () => void }) {
+export default function AttendanceReportError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
+ useErrorReport(error)
return
}
diff --git a/src/app/(dashboard)/teacher/attendance/sheet/error.tsx b/src/app/(dashboard)/teacher/attendance/sheet/error.tsx
index bc8c8f2..370d9b5 100644
--- a/src/app/(dashboard)/teacher/attendance/sheet/error.tsx
+++ b/src/app/(dashboard)/teacher/attendance/sheet/error.tsx
@@ -1,7 +1,9 @@
"use client"
import { RouteErrorBoundary } from "@/shared/components/route-error"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
-export default function AttendanceSheetError({ reset }: { error: Error & { digest?: string }; reset: () => void }) {
+export default function AttendanceSheetError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
+ useErrorReport(error)
return
}
diff --git a/src/app/(dashboard)/teacher/attendance/stats/error.tsx b/src/app/(dashboard)/teacher/attendance/stats/error.tsx
index f2e5bc8..03dd827 100644
--- a/src/app/(dashboard)/teacher/attendance/stats/error.tsx
+++ b/src/app/(dashboard)/teacher/attendance/stats/error.tsx
@@ -1,7 +1,9 @@
"use client"
import { RouteErrorBoundary } from "@/shared/components/route-error"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
-export default function AttendanceStatsError({ reset }: { error: Error & { digest?: string }; reset: () => void }) {
+export default function AttendanceStatsError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
+ useErrorReport(error)
return
}
diff --git a/src/app/(dashboard)/teacher/classes/my/[id]/error.tsx b/src/app/(dashboard)/teacher/classes/my/[id]/error.tsx
index 0b651be..9c94e0b 100644
--- a/src/app/(dashboard)/teacher/classes/my/[id]/error.tsx
+++ b/src/app/(dashboard)/teacher/classes/my/[id]/error.tsx
@@ -1,6 +1,7 @@
"use client"
import { ErrorState } from "@/shared/components/error-state"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
export default function ClassDetailError({
error,
@@ -9,5 +10,6 @@ export default function ClassDetailError({
error: Error & { digest?: string }
reset: () => void
}) {
+ useErrorReport(error)
return
}
diff --git a/src/app/(dashboard)/teacher/classes/my/error.tsx b/src/app/(dashboard)/teacher/classes/my/error.tsx
index ad35e6e..90c22fd 100644
--- a/src/app/(dashboard)/teacher/classes/my/error.tsx
+++ b/src/app/(dashboard)/teacher/classes/my/error.tsx
@@ -1,6 +1,7 @@
"use client"
import { ErrorState } from "@/shared/components/error-state"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
export default function MyClassesError({
error,
@@ -9,5 +10,6 @@ export default function MyClassesError({
error: Error & { digest?: string }
reset: () => void
}) {
+ useErrorReport(error)
return
}
diff --git a/src/app/(dashboard)/teacher/classes/schedule/error.tsx b/src/app/(dashboard)/teacher/classes/schedule/error.tsx
index 5b20e35..b1def22 100644
--- a/src/app/(dashboard)/teacher/classes/schedule/error.tsx
+++ b/src/app/(dashboard)/teacher/classes/schedule/error.tsx
@@ -1,6 +1,7 @@
"use client"
import { ErrorState } from "@/shared/components/error-state"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
export default function ScheduleError({
error,
@@ -9,5 +10,6 @@ export default function ScheduleError({
error: Error & { digest?: string }
reset: () => void
}) {
+ useErrorReport(error)
return
}
diff --git a/src/app/(dashboard)/teacher/classes/students/error.tsx b/src/app/(dashboard)/teacher/classes/students/error.tsx
index 12e7264..456fd99 100644
--- a/src/app/(dashboard)/teacher/classes/students/error.tsx
+++ b/src/app/(dashboard)/teacher/classes/students/error.tsx
@@ -1,6 +1,7 @@
"use client"
import { ErrorState } from "@/shared/components/error-state"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
export default function StudentsError({
error,
@@ -9,5 +10,6 @@ export default function StudentsError({
error: Error & { digest?: string }
reset: () => void
}) {
+ useErrorReport(error)
return
}
diff --git a/src/app/(dashboard)/teacher/course-plans/[id]/error.tsx b/src/app/(dashboard)/teacher/course-plans/[id]/error.tsx
index 4ccd297..fa80eb5 100644
--- a/src/app/(dashboard)/teacher/course-plans/[id]/error.tsx
+++ b/src/app/(dashboard)/teacher/course-plans/[id]/error.tsx
@@ -3,9 +3,11 @@
import { useTranslations } from "next-intl"
import { ClipboardList } from "lucide-react"
import { EmptyState } from "@/shared/components/ui/empty-state"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
-export default function TeacherCoursePlanDetailError() {
+export default function TeacherCoursePlanDetailError({ error }: { error: Error & { digest?: string } }) {
const t = useTranslations("coursePlans")
+ useErrorReport(error)
return (
void
}) {
const t = useTranslations("diagnostic")
+ useErrorReport(error)
return (
void
}) {
const t = useTranslations("diagnostic")
+ useErrorReport(error)
return (
void
}) {
const t = useTranslations("diagnostic")
+ useErrorReport(error)
return (
void }) {
+export default function TeacherElectiveError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("elective")
+ useErrorReport(error)
return (
void
+}) {
+ useErrorReport(error)
return (
void }) {
+export default function ExamAnalyticsError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function BuildExamError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function EditRichExamError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function ProctoringError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function AllExamsError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function CreateExamError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function NewExamError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void
}) {
+ useErrorReport(error)
return (
void
}) {
+ useErrorReport(error)
return (
void
}): JSX.Element {
const t = useTranslations("grades")
+ useErrorReport(error)
return (
void
}): JSX.Element {
const t = useTranslations("grades")
- useEffect(() => {
- console.error("[ReportCard] Route error:", error)
- }, [error])
+ useErrorReport(error)
return (
diff --git a/src/app/(dashboard)/teacher/grades/stats/error.tsx b/src/app/(dashboard)/teacher/grades/stats/error.tsx
index afc6697..737300a 100644
--- a/src/app/(dashboard)/teacher/grades/stats/error.tsx
+++ b/src/app/(dashboard)/teacher/grades/stats/error.tsx
@@ -3,13 +3,16 @@
import { AlertCircle } from "lucide-react"
import { EmptyState } from "@/shared/components/ui/empty-state"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
export default function TeacherGradesStatsError({
+ error,
reset,
}: {
error: Error & { digest?: string }
reset: () => void
}) {
+ useErrorReport(error)
return (
void }) {
+export default function AssignmentDetailError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function SubmissionsError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function AssignmentsListError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function HomeworkRootError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function SubmissionGradingError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void }) {
+export default function ScanGradingError({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {
const t = useTranslations("examHomework")
+ useErrorReport(error)
return (
void
+}) {
const t = useTranslations("lessonPreparation")
+ useErrorReport(error)
return (
void
+}) {
const t = useTranslations("lessonPreparation");
+ useErrorReport(error);
return (
void
+}) {
const t = useTranslations("lessonPreparation")
+ useErrorReport(error)
return (
void
+}) {
const t = useTranslations("lessonPreparation");
+ useErrorReport(error);
return (
void
+}) {
const t = useTranslations("lessonPreparation");
+ useErrorReport(error);
return (
void
+}) {
const t = useTranslations("lessonPreparation")
+ useErrorReport(error)
return (
void
}): React.ReactNode {
const t = useTranslations("practice")
- useEffect(() => {
- console.error("Practice analytics page error:", error)
- }, [error])
+ useErrorReport(error)
return (
diff --git a/src/app/(dashboard)/teacher/questions/error.tsx b/src/app/(dashboard)/teacher/questions/error.tsx
index f497d0a..53e32cd 100644
--- a/src/app/(dashboard)/teacher/questions/error.tsx
+++ b/src/app/(dashboard)/teacher/questions/error.tsx
@@ -4,14 +4,17 @@ import { AlertCircle } from "lucide-react"
import { useTranslations } from "next-intl"
import { EmptyState } from "@/shared/components/ui/empty-state"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
export default function TeacherQuestionsError({
+ error,
reset,
}: {
error: Error & { digest?: string }
reset: () => void
}) {
const t = useTranslations("questions")
+ useErrorReport(error)
return (
void
}) {
+ useErrorReport(error)
return
}
diff --git a/src/app/(dashboard)/teacher/textbooks/error.tsx b/src/app/(dashboard)/teacher/textbooks/error.tsx
index b3f7b24..3fab50e 100644
--- a/src/app/(dashboard)/teacher/textbooks/error.tsx
+++ b/src/app/(dashboard)/teacher/textbooks/error.tsx
@@ -1,12 +1,15 @@
"use client"
import { RouteErrorBoundary } from "@/shared/components/route-error"
+import { useErrorReport } from "@/shared/hooks/use-error-report"
export default function TeacherTextbooksError({
+ error,
reset,
}: {
error: Error & { digest?: string }
reset: () => void
}) {
+ useErrorReport(error)
return
}