summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Kangas <gabek@real-ity.com>2021-08-12 23:06:46 -0700
committerGabe Kangas <gabek@real-ity.com>2021-08-12 23:06:46 -0700
commit0fe7c9fa536342018907cb6839041b3673b4ee07 (patch)
tree0373e67d61dcc6b4712041f638c44636d6721810
parent6fb383d04b1ed35adc968cdc69c6fa50cb7d5b3e (diff)
Pass along disconnect time to determine chat disable timer durationgek/fix-chat-disable-delay
-rw-r--r--webroot/js/app.js32
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,