Pass along disconnect time to determine chat disable timer duration (#1310)

This commit is contained in:
Gabe Kangas 2021-08-12 23:24:43 -07:00 committed by GitHub
parent 6fb383d04b
commit 5adf2cdecd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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,