Repository navigation
Keep focus on the Attempt select while a chosen attempt loads - #15644
Open
rtibblesbot wants to merge 2 commits into
Open
rtibblesbot wants to merge 2 commits into
rtibblesbot wants to merge 2 commits into
Conversation
Contributor
Build Artifacts
Smoke test screenshot |
rtibblesbot
marked this pull request as ready for review
October 22, 2026 06:25
rtibblesbot
force-pushed
the
issue-15607-18cbfd
branch
2 times, most recently
from
October 26, 2026 04:40
b62449d to
ba24b43
Compare
| </template> | ||
|
|
||
| <template | ||
| v-if="!loading" |
Member
There was a problem hiding this comment.
Why don't we need the loading check here anymore? Has this been handled elsewhere?
Contributor
Author
There was a problem hiding this comment.
It moved down to CurrentTryOverview (line 80), the only part of the subheader that reads currentTry.
- The
KSelectonly needspastTries, whichloadAllTriesfetches separately, so it renders correctly while the chosen try loads. With the old gate it was unmounted at that point, and focus dropped to<body>. - Searched the template for other
loadinggates: there are 3. The aside (line 90) and the#mainloader (line 108) only wrap try-dependent content, never the control that has focus, so I left them as they were. index.spec.jscovers the select staying mounted and focused while the try loads, and the overview staying hidden until that try arrives.
rtibblesbot
force-pushed
the
issue-15607-18cbfd
branch
from
October 29, 2026 19:32
ba24b43 to
eefbf3f
Compare
3 tasks
Choosing another attempt unmounted the select, dropping focus to <body>. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The coach router guard set pageLoading and awaited a class summary refresh on every navigation to the exercise learner report, unmounting the page and dropping focus from the Attempt select. The report routes now skip the guard; generateExerciseDetailHandler loads class info and sets pageLoading itself when the learner, lesson or exercise changes. Otherwise it commits the try, question and interaction at once, without refetching the exercise, so the report never shows the old try's stats. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rtibblesbot
force-pushed
the
issue-15607-18cbfd
branch
from
October 30, 2026 05:57
eefbf3f to
a95224e
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pageLoadingonly for a new learner, lesson or exerciseReferences
Fixes #15607.
Reviewer guidance
Suggested review: Full code review, then manual QA once the reviewer sets Needs QA.
kolibri/plugins/coach/frontend/app.js,kolibri/plugins/coach/frontend/modules/exerciseDetail/handlers.js,packages/kolibri-common/components/quizzes/QuizReport/index.vue.router.beforeEach: try, question and interaction switches no longer refresh the class summary, and entering the report by Back/Forward no longer clears the snackbar.pendingLoadinexerciseDetail/handlers.jsis an acceptable pattern for discarding superseded learner loads.document.activeElementis the select.QA team: changing "Attempt" in a coach lesson exercise report keeps focus on "Attempt" and shows no page loader. Back, Forward and learner changes carry the most risk.
Requires: a lesson with "Skeletal Structure - Practice" (Kolibri QA Channel > Courses > Hummingbird Biology > Anatomy & Physiology > Skeletal Structure). A learner completes it twice, then starts again.
Evidence
Change the attempt
s1-switch-tries-mouse-keyboard.webm
Back and Forward
s2-select-switch-and-history.webm
Reload
Change the learner
learner-switch-back-forward.webm
Data states
More captures (4)
AI usage
Claude Code traced the focus loss to the slot's loading gate and wrote the fix and specs. Verified with Jest specs that fail without the fix, the existing QuizReport and QuizRenderer suites, and prek.
Written by rtibblesbot, an LLM-based coding agent.
🟡 Waiting for feedback
Last updated: 2026-10-30 06:01 UTC