@@ -9,6 +9,14 @@ type PlayType = (typeof PLAYTYPES)[number];
99
1010type GameResults = { wins : number ; losses : number ; draws : number } ;
1111
12+ type Props = {
13+ filename : string ;
14+ }
15+ const IconImage : React . FC < Props > = ( { filename } ) => {
16+ const src = `https://morgen.s3.us-west-1.amazonaws.com/icon_${ filename } .png` ;
17+ return < img alt = { filename } src = { src } width = "50" height = "50" /> ;
18+ }
19+
1220function getRandomMove ( ) : Move {
1321 const idx = Math . floor ( Math . random ( ) * MOVES . length ) ;
1422 return MOVES [ idx ] ;
@@ -53,9 +61,15 @@ function App() {
5361 return (
5462 < div style = { containerStyle } >
5563 < span > Select a move</ span >
56- < button className = "wiggle-on-hover" onClick = { ( ) => handleRound ( "rock" ) } > Rock</ button >
57- < button className = "wiggle-on-hover" onClick = { ( ) => handleRound ( "paper" ) } > Paper</ button >
58- < button className = "wiggle-on-hover" onClick = { ( ) => handleRound ( "scissors" ) } > Scissors</ button >
64+ < button className = "wiggle-on-hover" onClick = { ( ) => handleRound ( "rock" ) } >
65+ < IconImage filename = "rock" />
66+ </ button >
67+ < button className = "wiggle-on-hover" onClick = { ( ) => handleRound ( "paper" ) } >
68+ < IconImage filename = "paper" />
69+ </ button >
70+ < button className = "wiggle-on-hover" onClick = { ( ) => handleRound ( "scissors" ) } >
71+ < IconImage filename = "scissors" />
72+ </ button >
5973 </ div >
6074 ) ;
6175 } else {
@@ -68,8 +82,8 @@ function App() {
6882
6983 return (
7084 < div style = { containerStyle } >
71- < span > Computer Move: { computerMove } </ span >
72- < span > Player Move: { playerMove } </ span >
85+ < span > Computer Move: < IconImage filename = { computerMove } /> </ span >
86+ < span > Player Move: < IconImage filename = { playerMove } /> </ span >
7387 < span > { winnerText } </ span >
7488 < span > Wins: { gameResults . wins } || Losses: { gameResults . losses } || Draws: { gameResults . draws } </ span >
7589 < button className = "wiggle-on-hover" onClick = { ( ) => { setPlayerMove ( null ) ; setComputerMove ( getRandomMove ( ) ) } } > New Game</ button >
0 commit comments