Skip to content

Commit ad0e21a

Browse files
author
Willa Kong
committed
Initial commit
0 parents  commit ad0e21a

File tree

18 files changed

+4781
-0
lines changed

18 files changed

+4781
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules

app/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import document from "document";
2+
import { startReact } from "./react.js";
3+
4+
let titleTouch = document.getElementById("title-touch");
5+
6+
titleTouch.onclick = function() {
7+
startReact();
8+
};

app/react.js

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import document from "document";
2+
3+
let titleScreen = document.getElementById("title-screen");
4+
let reactScreen = document.getElementById("react-screen");
5+
let reactTouch = document.getElementById("react-touch");
6+
let reactText = document.getElementById("react-text");
7+
let reactSubText = reactText.getElementById("copy");
8+
let resultsScreen = document.getElementById("results-screen");
9+
let resultsTouch = document.getElementById("results-touch");
10+
let resultsText = document.getElementById("results-text");
11+
12+
let isGreen = false; // has the screen turned green and ready for user input
13+
14+
export function startReact() {
15+
// Change screens
16+
isGreen = false;
17+
reactTouch.style.fill = "fb-black";
18+
reactText.style.fill = "fb-peach";
19+
reactText.text = "Wait...";
20+
reactSubText.text = "~( ˘ v ˘ ~)";
21+
22+
titleScreen.style.display = "none";
23+
resultsScreen.style.display = "none";
24+
reactScreen.style.display = "inline";
25+
26+
// Random float generated between 1-3 s
27+
let min = 1, max = 3;
28+
let waitTime = Math.floor((Math.random() * (max - min) + min) * 100) / 100;
29+
30+
// Wait for the wait time (s)
31+
setTimeout(() => {
32+
calcReactTime();
33+
}, waitTime * 1000);
34+
};
35+
36+
function calcReactTime() {
37+
// Change the screen to green and wait for a user tap
38+
let startTime = Date.now();
39+
reactTouch.style.fill = "fb-green";
40+
reactText.style.fill = "fb-white";
41+
reactText.text = "Tap!";
42+
reactSubText.text = "(; > д <)";
43+
isGreen = true;
44+
45+
// User has tapped! Display the reaction time if screen has turned green
46+
reactTouch.onclick = function(e) {
47+
if (isGreen) {
48+
let endTime = Date.now();
49+
let elapsed = endTime - startTime;
50+
51+
// Change screen
52+
resultsText.text = "Your reaction time was: " + (elapsed / 1000) + " s";
53+
54+
titleScreen.style.display = "none";
55+
reactScreen.style.display = "none";
56+
resultsScreen.style.display = "inline";
57+
58+
resultsTouch.onclick = function() {
59+
startReact();
60+
};
61+
}
62+
}
63+
}

build/app.fba

13.8 KB
Binary file not shown.

0 commit comments

Comments
 (0)