Enrollment
Enrollment status and actions
SaaSLMS
Overview
The enrollment domain provides components for managing course enrollment flows. EnrollmentStatusBadge displays enrollment states (pending, active, completed, suspended, expired, cancelled). EnrollButton handles the enrollment lifecycle with prerequisite validation, capacity checks, waitlist support, and re-enrollment. WaitlistPosition shows queue position with estimated wait times.
Usage
import { EnrollButton, WaitlistPosition } from "@leanicon/web-builder-library/saas";
<EnrollButton
courseId="course-1"
onEnroll={() => enrollInCourse("course-1")}
onContinue={() => resumeCourse("course-1")}
prerequisites={prerequisites}
enrollmentStatus={userEnrollmentStatus}
/>
<WaitlistPosition
entry={waitlistEntry}
onLeave={() => leaveWaitlist(waitlistEntry.id)}
/>Variants
EnrollmentStatusBadge - All Statuses
PendingActiveCompletedSuspendedExpiredCancelled
EnrollmentStatusBadge - All Sizes
ActiveActiveActive
EnrollButton - Default (Not Enrolled)
EnrollButton - Loading
EnrollButton - Active Enrollment
EnrollButton - Completed
Course Completed
EnrollButton - Course Full (with Waitlist)
Course is full
EnrollButton - Not Eligible
Not eligible to enroll
WaitlistPosition - Default
Advanced React Patterns
5
Your position
5th in line
Joined 3 days ago
Estimated wait: 14 days
WaitlistPosition - First Position
Advanced React Patterns
1
Your position
1st in line
Joined 3 days ago
Estimated wait: Very soon
Dark
ActiveCompletedPending
With Incomplete Prerequisites (code only)
<EnrollButton
courseId="course-1"
prerequisites={[
{ id: "prereq-1", title: "Introduction to Programming", completed: true },
{ id: "prereq-2", title: "JavaScript Basics", completed: false },
{ id: "prereq-3", title: "HTML & CSS Fundamentals", completed: false },
]}
onEnroll={() => console.log("Enroll")}
/>