Skip to content

Commit 2e47260

Browse files
committed
Fix scroll-to-top when selecting language on course introduction
Only run scroll in course/stage route when the transition is to a course.stage route. Query-param-only changes (e.g. repo/track after language selection) no longer trigger scroll, so the page stays in place when choosing a language.
1 parent 4a0735f commit 2e47260

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

app/routes/course/stage.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import BaseRoute from 'codecrafters-frontend/utils/base-route';
22
import scrollToTop from 'codecrafters-frontend/utils/scroll-to-top';
33
import { service } from '@ember/service';
4+
import type Transition from '@ember/routing/transition';
45
import type RouterService from '@ember/routing/router-service';
56
import type CoursePageStateService from 'codecrafters-frontend/services/course-page-state';
67
import type { ModelType as CourseRouteModelType } from 'codecrafters-frontend/routes/course';
@@ -17,7 +18,14 @@ export default class CourseStageRoute extends BaseRoute {
1718
constructor(...args: object[]) {
1819
super(...args);
1920

20-
this.router.on('routeDidChange', () => {
21+
this.router.on('routeDidChange', (transition: Transition) => {
22+
const toRouteName = transition?.to?.name;
23+
const isNavigatingToStage = toRouteName && String(toRouteName).startsWith('course.stage');
24+
25+
if (!isNavigatingToStage) {
26+
return;
27+
}
28+
2129
const element = document.querySelector('#course-page-scrollable-area');
2230

2331
if (element) {

0 commit comments

Comments
 (0)