|
1 | 1 | import { Screen } from "@keybr/pages-shared";
|
2 | 2 | import { type LineList, makeStats } from "@keybr/textinput";
|
| 3 | +import { useSoundPlayer } from "@keybr/textinput-sounds"; |
3 | 4 | import { TextArea } from "@keybr/textinput-ui";
|
4 | 5 | import { Box, type Focusable, Spacer, useView } from "@keybr/widget";
|
5 | 6 | import { useEffect, useRef, useState } from "react";
|
@@ -35,6 +36,7 @@ function Controller({
|
35 | 36 | const { setView } = useView(views);
|
36 | 37 | const settings = useCompositeSettings();
|
37 | 38 | const focusRef = useRef<Focusable>(null);
|
| 39 | + const player = useSoundPlayer(); |
38 | 40 | const [session, setSession] = useState(() => nextTest(settings, generator));
|
39 | 41 | const [lines, setLines] = useState<LineList>(Session.emptyLines);
|
40 | 42 | const [progress, setProgress] = useState(Session.emptyProgress);
|
@@ -71,9 +73,11 @@ function Controller({
|
71 | 73 | onKeyDown={session.handleKeyDown}
|
72 | 74 | onKeyUp={session.handleKeyUp}
|
73 | 75 | onInput={(event) => {
|
74 |
| - const { progress, completed } = session.handleInput(event); |
| 76 | + const { feedback, progress, completed } = |
| 77 | + session.handleInput(event); |
75 | 78 | setLines(session.getLines());
|
76 | 79 | setProgress(progress);
|
| 80 | + player(feedback); |
77 | 81 | if (completed) {
|
78 | 82 | setView("report", { result: makeResult(session) });
|
79 | 83 | }
|
|
0 commit comments