feat(quick-260329-tk2): add companion instructions for practice and words phases

- Practice phase shows 'Jetzt kannst du ueben! Druecke die Taste zu dem Buchstaben, der herunterfaellt.' for 2.5s before exercise starts
- Words phase shows 'Jetzt kommen ganze Woerter! Tippe die Buchstaben nacheinander ein.' for 2.5s before exercise starts
- Both functions converted to async/await pattern matching existing discover phase
- Companion text cleared after delay before exercises begin
This commit is contained in:
2026-03-29 21:19:38 +02:00
parent 7b6309ecfb
commit 4cb5fa6883
+15 -3
View File
@@ -468,16 +468,28 @@ export function initLessonScreen(
companionText.textContent = ""; companionText.textContent = "";
} }
function runPracticePhase(): Promise<void> { async function runPracticePhase(): Promise<void> {
setPhase("practice"); setPhase("practice");
companionText.textContent =
"Jetzt kannst du ueben! Druecke die Taste zu dem Buchstaben, der herunterfaellt.";
companionArea.style.display = "flex";
await new Promise<void>((resolve) => setTimeout(resolve, 2500));
if (cancelled) return;
companionText.textContent = "";
const state = createExerciseState(level); const state = createExerciseState(level);
return new Promise<void>((resolve) => { return new Promise<void>((resolve) => {
runLetterExercise(state, resolve); runLetterExercise(state, resolve);
}); });
} }
function runWordsPhase(): Promise<void> { async function runWordsPhase(): Promise<void> {
setPhase("words"); setPhase("words");
companionText.textContent =
"Jetzt kommen ganze Woerter! Tippe die Buchstaben nacheinander ein.";
companionArea.style.display = "flex";
await new Promise<void>((resolve) => setTimeout(resolve, 2500));
if (cancelled) return;
companionText.textContent = "";
const wordCount = 4; const wordCount = 4;
let words: string[]; let words: string[];
if (isReview) { if (isReview) {
@@ -504,7 +516,7 @@ export function initLessonScreen(
if (words.length === 0) { if (words.length === 0) {
// Fallback: skip words phase if no words available // Fallback: skip words phase if no words available
return Promise.resolve(); return;
} }
const state = createWordExerciseState(words); const state = createWordExerciseState(words);