diff --git a/apps/dashboard/src/lib/features/course/utils/student-course-navigation.ts b/apps/dashboard/src/lib/features/course/utils/student-course-navigation.ts new file mode 100644 index 00000000..4c30b492 --- /dev/null +++ b/apps/dashboard/src/lib/features/course/utils/student-course-navigation.ts @@ -0,0 +1,3 @@ +export function getStudentCourseContinuePath(courseId: string): string { + return `/courses/${courseId}/lessons?next=true`; +} diff --git a/apps/dashboard/src/lib/features/lms/components/learning.svelte b/apps/dashboard/src/lib/features/lms/components/learning.svelte index 279d3b30..88a17bd6 100644 --- a/apps/dashboard/src/lib/features/lms/components/learning.svelte +++ b/apps/dashboard/src/lib/features/lms/components/learning.svelte @@ -13,10 +13,11 @@ getStudentCourseComplianceStatusVariant, getStudentCourseProgressPercent } from '$features/course/utils/compliance-utils'; + import { getStudentCourseContinuePath } from '$features/course/utils/student-course-navigation'; const gotoCourse = (id: string | undefined) => { if (!id) return; - goto(`/courses/${id}/lessons?next=true`); + goto(getStudentCourseContinuePath(id)); }; let highlightedCourses = $derived.by(() => { diff --git a/apps/dashboard/src/lib/features/lms/pages/dashboard.svelte b/apps/dashboard/src/lib/features/lms/pages/dashboard.svelte index ff0a3aae..089a440d 100644 --- a/apps/dashboard/src/lib/features/lms/pages/dashboard.svelte +++ b/apps/dashboard/src/lib/features/lms/pages/dashboard.svelte @@ -35,6 +35,7 @@ getStudentCourseProgressPercent, isStudentCourseComplete } from '$features/course/utils/compliance-utils'; + import { getStudentCourseContinuePath } from '$features/course/utils/student-course-navigation'; type EnrolledCourse = (typeof coursesApi.enrolledCourses)[number]; @@ -147,7 +148,7 @@ function gotoCourse(id: string | undefined) { if (!id) return; - goto(`/courses/${id}/lessons?next=true`); + goto(getStudentCourseContinuePath(id)); } function gotoCourseCertificates(id: string | undefined) { diff --git a/apps/dashboard/src/routes/(org-site)/course/[slug]/enroll/+page.svelte b/apps/dashboard/src/routes/(org-site)/course/[slug]/enroll/+page.svelte index 7f5ecaad..7fe6eeee 100644 --- a/apps/dashboard/src/routes/(org-site)/course/[slug]/enroll/+page.svelte +++ b/apps/dashboard/src/routes/(org-site)/course/[slug]/enroll/+page.svelte @@ -13,6 +13,7 @@ import { resolve } from '$app/paths'; import { authClient } from '$lib/utils/services/auth/client'; import { appInitApi } from '$features/app/init.svelte'; + import { getStudentCourseContinuePath } from '$features/course/utils/student-course-navigation'; let { data } = $props(); @@ -28,10 +29,6 @@ const isLoggedIn = $derived(sessionReady && Boolean(sessionUser)); const isEmailVerified = $derived(Boolean($profile.isEmailVerified || sessionUser?.emailVerified)); - function resolvePostEnrollRedirect(): string { - return '/lms'; - } - async function sendVerificationEmail() { const email = $profile.email || sessionUser?.email; if (!email) { @@ -141,7 +138,7 @@ } navigatingAway = true; - window.location.href = resolvePostEnrollRedirect(); + await goto(resolve(getStudentCourseContinuePath(data.course.id), {})); } finally { enrollmentInFlight = false; if (!navigatingAway) {