From 49a9db6d9b68471d1fe99b8af1faf8c4908cc0af Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 1 May 2019 20:59:23 +1000 Subject: [PATCH] timeout events --- client/src/components/body.component.jsx | 13 ------------- client/src/events.jsx | 16 +++++++++++----- client/src/socket.jsx | 5 ----- 3 files changed, 11 insertions(+), 23 deletions(-) diff --git a/client/src/components/body.component.jsx b/client/src/components/body.component.jsx index 6f393fd7..95c45c5e 100644 --- a/client/src/components/body.component.jsx +++ b/client/src/components/body.component.jsx @@ -10,19 +10,6 @@ const InstanceContainer = require('./instance.container'); const addState = connect( state => { const { game, instance, ws, account } = state; - - if (!game) { - ws.clearGameStateTimeout(); - } else { - ws.startGameStateTimeout(game.id); - } - - if (!instance) { - ws.clearInstanceStateTimeout(); - } else { - ws.startInstanceStateTimeout(instance.id); - } - return { game, instance, account }; } ); diff --git a/client/src/events.jsx b/client/src/events.jsx index bb7f4b0a..69beee55 100644 --- a/client/src/events.jsx +++ b/client/src/events.jsx @@ -6,6 +6,15 @@ const { TIMES } = require('./constants'); const { getCombatSequence } = require('./utils'); function registerEvents(store) { + + // timeout handlers + store.subscribe(() => { + const { game, instance, ws} = store.getState(); + + if (!game) ws.clearGameStateTimeout(); + if (!instance) ws.clearInstanceStateTimeout(); + }); + function setCryps(cryps) { console.log('EVENT ->', 'cryps', cryps); } @@ -21,8 +30,7 @@ function registerEvents(store) { function setGame(game) { const { game: currentGame, ws } = store.getState(); - if (!game) ws.clearGameStateTimeout(); - + if (game) ws.startGameStateTimeout(game.id); if (game && currentGame) { if (game.resolved.length !== currentGame.resolved.length) { // stop fetching the game state til animations are done @@ -99,10 +107,8 @@ function registerEvents(store) { const { account, ws } = store.getState(); const player = v.players.find(p => p.id === account.id); if (player) store.dispatch(actions.setPlayer(player)); + if (v) ws.startInstanceStateTimeout(v.id); - if (!v) { - ws.clearInstanceStateTimeout(); - } return store.dispatch(actions.setInstance(v)); } diff --git a/client/src/socket.jsx b/client/src/socket.jsx index 548e7381..10d6494f 100644 --- a/client/src/socket.jsx +++ b/client/src/socket.jsx @@ -218,19 +218,14 @@ function createSocket(events) { function instanceState(response) { const [structName, i] = response; - clearTimeout(instanceStateTimeout); - instanceStateTimeout = setTimeout(() => sendInstanceState(i.id), 1000); - console.log(instanceStateTimeout); events.setInstance(i); return true; } function clearInstanceStateTimeout() { - console.log('instance state timeout cleared'); clearTimeout(instanceStateTimeout); } - function instanceScores(response) { const [structName, scores] = response; events.setScores(scores);