@@ -6,12 +6,14 @@ import {
66 DEFAULT_IMG_CLUE ,
77 DEVICE_LIST_KEY ,
88 WEBVIEW_MESSAGES ,
9+ VIEW_STATE ,
910} from "../../constants" ;
1011import PlayLogo from "../../svgs/play_svg" ;
1112import StopLogo from "../../svgs/stop_svg" ;
1213import { sendMessage } from "../../utils/MessageUtils" ;
1314import ActionBar from "../simulator/ActionBar" ;
1415import { BUTTONS_KEYS , ClueImage } from "./ClueImage" ;
16+ import { ViewStateContext } from "../../context" ;
1517
1618export const DEFAULT_CLUE_STATE : IClueState = {
1719 buttons : { button_a : false , button_b : false } ,
@@ -215,7 +217,10 @@ export class ClueSimulator extends React.Component<any, IState> {
215217 } ;
216218 protected onKeyEvent ( event : KeyboardEvent , active : boolean , key : string ) {
217219 event . stopPropagation ( ) ;
218- if ( [ event . code , event . key ] . includes ( CONSTANTS . KEYBOARD_KEYS . ENTER ) ) {
220+ if (
221+ [ event . code , event . key ] . includes ( CONSTANTS . KEYBOARD_KEYS . ENTER ) &&
222+ this . context === VIEW_STATE . RUNNING
223+ ) {
219224 this . handleButtonClick ( key , active ) ;
220225 if ( this . imageRef . current ) {
221226 if ( key === BUTTONS_KEYS . BTN_A ) {
@@ -236,7 +241,8 @@ export class ClueSimulator extends React.Component<any, IState> {
236241 }
237242 }
238243 } else if (
239- [ event . code , event . key ] . includes ( CONSTANTS . KEYBOARD_KEYS . A )
244+ [ event . code , event . key ] . includes ( CONSTANTS . KEYBOARD_KEYS . A ) &&
245+ this . context === VIEW_STATE . RUNNING
240246 ) {
241247 this . handleButtonClick ( BUTTONS_KEYS . BTN_A , active ) ;
242248 if ( this . imageRef . current ) {
@@ -246,7 +252,8 @@ export class ClueSimulator extends React.Component<any, IState> {
246252 ) ;
247253 }
248254 } else if (
249- [ event . code , event . key ] . includes ( CONSTANTS . KEYBOARD_KEYS . B )
255+ [ event . code , event . key ] . includes ( CONSTANTS . KEYBOARD_KEYS . B ) &&
256+ this . context === VIEW_STATE . RUNNING
250257 ) {
251258 this . handleButtonClick ( BUTTONS_KEYS . BTN_B , active ) ;
252259 if ( this . imageRef . current ) {
@@ -256,7 +263,8 @@ export class ClueSimulator extends React.Component<any, IState> {
256263 ) ;
257264 }
258265 } else if (
259- [ event . code , event . key ] . includes ( CONSTANTS . KEYBOARD_KEYS . C )
266+ [ event . code , event . key ] . includes ( CONSTANTS . KEYBOARD_KEYS . C ) &&
267+ this . context === VIEW_STATE . RUNNING
260268 ) {
261269 this . handleButtonClick ( BUTTONS_KEYS . BTN_AB , active ) ;
262270 if ( this . imageRef . current ) {
@@ -272,3 +280,4 @@ export class ClueSimulator extends React.Component<any, IState> {
272280 }
273281 }
274282}
283+ ClueSimulator . contextType = ViewStateContext ;
0 commit comments