Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
2026-07-11 12:12:40 +08:00
parent 01a2c63b06
commit 71f758fe0b
66 changed files with 3055 additions and 939 deletions
@@ -14,6 +14,7 @@ import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { Textarea } from "@/components/ui/textarea";
import { Spinner } from "@/components/ui/spinner";
import { useUnsavedChangesGuard } from "@/hooks/useUnsavedChangesGuard";
const schema = z.object({
title: z.string().min(1, "Title is required."),
@@ -43,6 +44,8 @@ export default function EditLesson() {
const { fields, append, remove } = useFieldArray({ control, name: "objectives" });
const { bypassOnce, dialog: unsavedChangesDialog } = useUnsavedChangesGuard(isDirty);
useEffect(() => {
(async () => {
const res = await fetchLesson(courseId, unitId, lessonId);
@@ -59,7 +62,7 @@ export default function EditLesson() {
}, [courseId, unitId, lessonId]);
const onSubmit = async (data) => {
if (!isDirty) return navigate(-1);
if (!isDirty) { bypassOnce(); return navigate(-1); }
const result = await updateLesson(courseId, unitId, lessonId, {
...data,
objectives: data.objectives?.map((o, i) => ({
@@ -70,6 +73,7 @@ export default function EditLesson() {
updatedBy: user?.user_id,
});
if (!result) return;
bypassOnce();
navigate(-1);
};
@@ -170,6 +174,8 @@ export default function EditLesson() {
</form>
</div>
</div>
{unsavedChangesDialog}
</section>
);
}