feat: improve LMS course discovery and enrollment UX

- Add paginated recommended courses to LMS dashboard (top 3, list
    view)
    and explore page (12 per page); exclude courses blocking new
    students
  - Polish course preview modal: remove padding, render requirements as
    HTML, round banner image, secondary close button
  - Redirect to course start page after successful enrollment instead of
    /lms;
    keep spinner active until navigation completes
  - Auto-enable "allow new students" when a course is published
  - Move Explore after My Learning in LMS sidebar nav
  - Move Certificates after Content in course sidebar
  - Add hiddenColumns prop to CourseListRow; show "Learn more" button
    instead of actions menu in LMS explore context
This commit is contained in:
Rotimi Best
2026-06-11 14:22:18 +01:00
parent 4e24e3cb63
commit c8154409f5
15 changed files with 465 additions and 194 deletions
@@ -57,6 +57,12 @@ export const baseNavConfig: NavItemConfig[] = [
icon: CourseIcon,
matchPattern: '^/lms/mylearning(/.*)?$'
},
{
titleKey: 'lms_navigation.explore',
path: '/explore',
icon: ExploreIcon,
matchPattern: '^/lms/explore(/.*)?$'
},
{
titleKey: 'lms_navigation.programs',
path: '/programs',
@@ -76,20 +82,14 @@ export const baseNavConfig: NavItemConfig[] = [
icon: CommunityIcon,
matchPattern: '^/lms/community(/.*)?$',
show: (currentOrg) => currentOrg?.customization?.dashboard?.community === true,
supportsDynamicSegment: true, // Supports /community/[slug]
supportsDynamicSegment: true,
nestedRoutes: [
{
path: 'ask',
titleKey: 'Ask Question' // Could be translated
titleKey: 'Ask Question'
}
]
},
{
titleKey: 'lms_navigation.explore',
path: '/explore',
icon: ExploreIcon,
matchPattern: '^/lms/explore(/.*)?$'
},
{
titleKey: 'lms_navigation.settings',
path: '/settings',