From 9c560aa45cd1b2f509cc12bcf751caf53bcf3cf8 Mon Sep 17 00:00:00 2001 From: rgrgogu Date: Thu, 23 Jul 2026 16:16:17 +0800 Subject: [PATCH] fix 3 test case FAIL issue --- src/modules/admin/pages/courses/CourseAssessment.jsx | 5 +++++ src/utils/excel.util.js | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/modules/admin/pages/courses/CourseAssessment.jsx b/src/modules/admin/pages/courses/CourseAssessment.jsx index af844c5..defc3d8 100644 --- a/src/modules/admin/pages/courses/CourseAssessment.jsx +++ b/src/modules/admin/pages/courses/CourseAssessment.jsx @@ -5,6 +5,7 @@ import { ArrowLeft, House, Plus, Save, ClipboardList, ChevronUp, ChevronDown, Al import { toast } from "sonner"; import { useCourses } from "@/contexts/AdminCoursesContext"; import { useAuth } from "@/contexts/AuthContext"; +import { useUnsavedChangesGuard } from "@/hooks/useUnsavedChangesGuard"; import { PageMeta } from "@/contexts/MetadataContext"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; @@ -421,6 +422,8 @@ export default function CourseAssessment() { ? questions.length > 0 : snapAssessment({ title, passingScore, timeLimit, isRequired, maxQuestions, maxAttempts, cooldownHours, shuffleQuestions, questions }) !== initialSnapshot.current; + const { dialog: unsavedChangesDialog } = useUnsavedChangesGuard(isDirty); + // ── Auto-save unsaved changes to localStorage as a draft ─────────────────── useEffect(() => { if (initializing) return; @@ -832,6 +835,8 @@ export default function CourseAssessment() { )} + + {unsavedChangesDialog} ); } \ No newline at end of file diff --git a/src/utils/excel.util.js b/src/utils/excel.util.js index e7aaa1a..6227a80 100644 --- a/src/utils/excel.util.js +++ b/src/utils/excel.util.js @@ -1,5 +1,6 @@ // ─── utils/exportToExcel.js ─────────────────────────────────────────────────── import XLSX from "xlsx-js-style"; +import { toast } from "sonner"; import { BOOLEAN_FIELD_LABELS } from "@/utils/table.util"; import { isIsoDateTimeString, fmtDateTimeCompact, fmtDateTimeWithOffset } from "@/utils/datetime.util"; @@ -234,7 +235,7 @@ export function exportToExcel({ footerNote = "Confidential – For authorized personnel only.", } = {}) { if (!data.length || !columns.length) { - console.warn("exportToExcel: no data or columns to export."); + toast("Nothing to export — the table has no rows."); return; }