diff options
author | Gabe Kangas <gabek@real-ity.com> | 2021-08-12 23:06:46 -0700 |
---|---|---|
committer | Gabe Kangas <gabek@real-ity.com> | 2021-08-12 23:06:46 -0700 |
commit | 0fe7c9fa536342018907cb6839041b3673b4ee07 (patch) | |
tree | 0373e67d61dcc6b4712041f638c44636d6721810 | |
parent | 6fb383d04b1ed35adc968cdc69c6fa50cb7d5b3e (diff) |
Pass along disconnect time to determine chat disable timer durationgek/fix-chat-disable-delay
-rw-r--r-- | webroot/js/app.js | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/webroot/js/app.js b/webroot/js/app.js index 4750e9e30..7eb9c823c 100644 --- a/webroot/js/app.js +++ b/webroot/js/app.js @@ -251,14 +251,6 @@ export default class App extends Component { lastDisconnectTime, } = status; - if (status.online && !curStreamOnline) { - // stream has just come online. - this.handleOnlineMode(); - } else if (!status.online && curStreamOnline) { - // stream has just flipped offline. - this.handleOfflineMode(); - } - this.setState({ viewerCount, lastConnectTime, @@ -266,6 +258,14 @@ export default class App extends Component { streamTitle, lastDisconnectTime, }); + + if (status.online && !curStreamOnline) { + // stream has just come online. + this.handleOnlineMode(); + } else if (!status.online && curStreamOnline) { + // stream has just flipped offline. + this.handleOfflineMode(lastDisconnectTime); + } } // when videojs player is ready, start polling for stream @@ -296,13 +296,17 @@ export default class App extends Component { } // stop status timer and disable chat after some time. - handleOfflineMode() { + handleOfflineMode(lastDisconnectTime) { clearInterval(this.streamDurationTimer); - const remainingChatTime = - TIMER_DISABLE_CHAT_AFTER_OFFLINE - - (Date.now() - new Date(this.state.lastDisconnectTime)); - const countdown = remainingChatTime < 0 ? 0 : remainingChatTime; - this.disableChatInputTimer = setTimeout(this.disableChatInput, countdown); + + if (lastDisconnectTime) { + const remainingChatTime = + TIMER_DISABLE_CHAT_AFTER_OFFLINE - + (Date.now() - new Date(lastDisconnectTime)); + const countdown = remainingChatTime < 0 ? 0 : remainingChatTime; + this.disableChatInputTimer = setTimeout(this.disableChatInput, countdown); + } + this.setState({ streamOnline: false, streamStatusMessage: MESSAGE_OFFLINE, |