Commit Graph
8 Commits
Author SHA1 Message Date
Cursor AgentandRotimi Best e4406481d6 fix(dashboard): stop enroll effect loop and duplicate verify emails
The auto-enroll effect re-fired because completeEnrollment reset
enrollmentAttemptKey in finally after each run. That re-triggered enroll
API calls and sendVerificationEmail on every tick for unverified users.

Track enrollmentSucceeded and send verification email at most once.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
2026-07-10 07:58:11 +00:00
Cursor AgentandRotimi Best b888725125 fix(sidebar): scope elevated mobile z-index to course sidebar
Remove the global z-150 mobile sheet stacking from Sidebar.Root so LMS
and org sidebars keep the default sheet layer. Course sidebar opts in via
mobileOverlayClass and its existing z-150 class.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
2026-07-10 07:36:06 +00:00
Cursor AgentandRotimi Best 9cedaf8153 fix(dashboard): address PR feedback on enroll load and copy
Remove unnecessary getApiKeyHeaders from public course-by-slug fetch.
Shorten enrolled_verify_email copy, fix ru.json duplicate keys, and
translate enroll verification strings in non-English locales.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
2026-07-10 05:51:36 +00:00
Cursor AgentandRotimi Best 553c126e3c fix(sidebar): raise mobile sidebar above sticky lesson headers
Restore lesson/exercise page header z-100 stacking and fix the overlap
by lifting the mobile sidebar sheet and overlay to z-150, matching the
desktop course sidebar.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
2026-07-10 05:15:39 +00:00
Cursor AgentandRotimi Best daae6c1d40 fix(course): keep lesson header below mobile sidebar
Remove the z-100 override on sticky lesson/exercise page headers so they
stack below the mobile sidebar sheet (z-50). Also make the lesson page
header sticky to match the exercise page.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
2026-07-10 05:12:32 +00:00
Cursor AgentandRotimi Best 5de1f51e76 fix: address PR review comments on enroll and verify email
- Revert org-site layout 404 bypass; custom domain org lookup uses hostname
- Remove unnecessary comment in enroll redirect helper
- Restore email verification flow documentation
- Use generic welcome copy when no org branding is resolved

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
2026-07-10 04:51:30 +00:00
Cursor AgentandRotimi Best a6d06f356f feat(email): make verify-email org-aware like other transactional mail
Resolve the tenant org from the verification link callback URL (custom
domain, tenant subdomain, or ?org=) and apply org logo, theme color, from
name, and subject. Falls back to ClassroomIO branding on the main app.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
2026-07-10 04:32:11 +00:00
Cursor AgentandRotimi Best f262a092ed fix(dashboard): keep unverified users on enroll page after join
After email login, auto-enroll was redirecting to /lms or the admin
/courses/:id/lessons route. Unverified users cannot use the LMS yet
(VerifyEmailModal on app routes), which felt like a permission error.

Enroll without verification, but stay on the enroll page with a verify
prompt instead of redirecting until email is confirmed. Also fix custom
domain org lookup to use hostname without backend port.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
2026-07-10 04:32:10 +00:00