fix: preventDefault() forget

Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
2026-07-04 06:03:10 +08:00
parent 57fa25b73a
commit 530da0b49d
+19 -1
View File
@@ -5,6 +5,7 @@ import api from "@/utils/api.util";
import { import {
House, Timer, Layers, GitBranch, Medal, CircleStar, LockIcon, House, Timer, Layers, GitBranch, Medal, CircleStar, LockIcon,
SendHorizonal, CheckCheck, CheckCircle2, Clock, FileQuestion, ClipboardList, SendHorizonal, CheckCheck, CheckCircle2, Clock, FileQuestion, ClipboardList,
Hourglass,
} from "lucide-react"; } from "lucide-react";
import CourseBadge from "@/modules/admin/components/courses/CourseBadge"; import CourseBadge from "@/modules/admin/components/courses/CourseBadge";
import { Badge } from "@/components/ui/badge"; import { Badge } from "@/components/ui/badge";
@@ -521,6 +522,9 @@ const CourseDetails = () => {
}, []); }, []);
const hasCompleted = !!course?.is_completed; const hasCompleted = !!course?.is_completed;
// duration_seconds is derived from authored lesson content (see duration.util.js) —
// zero means no lesson content has been built yet, so the course isn't ready to take.
const contentNotReady = !course?.duration_seconds;
useEffect(() => { useEffect(() => {
if (!myTier) getMyTier(); if (!myTier) getMyTier();
@@ -595,12 +599,18 @@ const CourseDetails = () => {
<div className="w-full flex items-center justify-between"> <div className="w-full flex items-center justify-between">
<AppBreadcrumb items={items} /> <AppBreadcrumb items={items} />
<div id="call-to-action"> <div id="call-to-action">
{contentNotReady ? (
<Badge variant="secondary" className="gap-1.5 text-xs">
<Hourglass className="size-3" /> Coming Soon
</Badge>
) : (
<Button onClick={() => navigate(`/course/${courseId}/unit`)}> <Button onClick={() => navigate(`/course/${courseId}/unit`)}>
{hasCompleted {hasCompleted
? <><CheckCheck /> Start Again</> ? <><CheckCheck /> Start Again</>
: <><SendHorizonal /> Start Learning</> : <><SendHorizonal /> Start Learning</>
} }
</Button> </Button>
)}
</div> </div>
</div> </div>
</motion.div> </motion.div>
@@ -639,9 +649,15 @@ const CourseDetails = () => {
</div> </div>
)} )}
</div> </div>
<div ref={CourseBreadcrumb} className="w-fit">
{contentNotReady ? (
<div className="flex items-center gap-2 rounded-lg border bg-muted px-4 py-2.5 text-sm text-muted-foreground">
<Hourglass className="size-4 shrink-0" />
This course is currently being prepared. Please check back later.
</div>
) : (
<Button <Button
className="w-fit" className="w-fit"
ref={CourseBreadcrumb}
onClick={() => navigate(`/course/${courseId}/unit`)} onClick={() => navigate(`/course/${courseId}/unit`)}
> >
{hasCompleted {hasCompleted
@@ -649,6 +665,8 @@ const CourseDetails = () => {
: <><SendHorizonal /> Proceed</> : <><SendHorizonal /> Proceed</>
} }
</Button> </Button>
)}
</div>
</div> </div>
</div> </div>
</div> </div>