- Add comprehensive audit report for exam and homework module - Create exam-homework i18n message files (zh-CN + en) and register namespace - Add permission check to gradeHomeworkSubmissionAction to prevent horizontal privilege escalation - Add Error Boundary + loading.tsx for 5 key pages (exam build/proctoring, homework assignment/submissions, student assignment) - Refactor exam-columns to createExamColumns(t) factory for i18n support - Refactor exam-data-table to manage columns internally via useTranslations - Replace hardcoded strings with i18n keys in all exam/homework components and pages - Add getHomeworkSubmissionForGrading data-access for secure grading flow
25 lines
759 B
TypeScript
25 lines
759 B
TypeScript
"use client"
|
|
|
|
import { AlertCircle } from "lucide-react"
|
|
import { useTranslations } from "next-intl"
|
|
|
|
import { EmptyState } from "@/shared/components/ui/empty-state"
|
|
|
|
export default function StudentAssignmentDetailError({ reset }: { error: Error & { digest?: string }; reset: () => void }) {
|
|
const t = useTranslations("examHomework")
|
|
return (
|
|
<div className="flex h-full flex-col items-center justify-center space-y-4 p-8">
|
|
<EmptyState
|
|
icon={AlertCircle}
|
|
title={t("homework.error.notFound")}
|
|
description={t("homework.error.assignmentNotFound")}
|
|
action={{
|
|
label: t("common.retry"),
|
|
onClick: () => reset(),
|
|
}}
|
|
className="border-none shadow-none h-auto"
|
|
/>
|
|
</div>
|
|
)
|
|
}
|