1
- import React , { useState } from 'react' ;
1
+ import React , { useState , useEffect } from 'react' ;
2
2
import { Input } from 'antd' ;
3
3
import { Button } from 'antd' ;
4
4
import 'antd/es/button/style/index.css' ;
@@ -22,19 +22,27 @@ const App = () => {
22
22
"What's Forrest Gump's password?" ,
23
23
'Where do programmers like to hangout? The Foo Bar'
24
24
] ;
25
+ const INITIAL_GAME_STATE = { victory : false , startTime : null , endTime : null } ;
26
+ const [ gameState , setGameState ] = useState ( INITIAL_GAME_STATE ) ;
25
27
const [ snippet , setSnippet ] = useState ( 'Lazy! select snippet!' ) ;
26
28
const [ userText , setUserText ] = useState ( '' ) ;
27
29
28
30
const updateUserText = event => {
29
31
setUserText ( event . target . value ) ;
30
- console . log ( userText ) ;
32
+ if ( event . target . value == snippet ) {
33
+ setGameState ( { ...gameState , victory : true , endTime : new Date ( ) . getTime ( ) - gameState . startTime } ) ;
34
+ }
31
35
}
32
36
33
37
const chooseSnippet = snippetIndex => ( ) => {
34
- console . log ( 'setSnippet' , snippetIndex ) ;
35
38
setSnippet ( SNIPPETS [ snippetIndex ] ) ;
39
+ setGameState ( { ...gameState , startTime : new Date ( ) . getTime ( ) } )
36
40
} ;
37
41
42
+ useEffect ( ( ) => {
43
+ if ( gameState . victory ) document . title = 'Victory!' ;
44
+ } ) ;
45
+
38
46
return (
39
47
< div className = "container" >
40
48
< h2 > Type something...</ h2 >
@@ -47,6 +55,7 @@ const App = () => {
47
55
</ Button >
48
56
) )
49
57
}
58
+ < p > { gameState . victory ? `Congrats π, You did it at ${ gameState . endTime } ` : '' } </ p >
50
59
</ div >
51
60
)
52
61
}
0 commit comments