Function
Enroll enrolls through the learner store at once (capability
course-enrollment), so every instance on the page flips to Start
course before the server answers, and back if it refuses. It also
welcomes the learner (capability enrollment-welcome): the confetti burst
and EnrollmentWelcomeModal, which needs NiceModal.Provider above
this component, as global-providers.tsx mounts it.
Once joined, the action is CourseStartLink: the video the progress board's continue tile would open, worded the same way. A course without videos offers nothing to open, so the action renders nothing once joined.
Each instance reads the enrollment and the progress itself, which is what keeps the hero, the enroll card and the phone bar in agreement.
The course page's one action: Enroll until the learner has joined the course, then the way into it — Start course, Continue where you left off or Watch again.