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:
+15
-3
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user