From a2970ce92947d75466579864b436f81356e17f3c Mon Sep 17 00:00:00 2001 From: Liam Fitzgerald Date: Wed, 17 Jun 2020 15:24:22 +1000 Subject: [PATCH] chat: cap maximum backlog size at 1000 Caps maximum unread backlog that chat will fetch at 1000 messages. --- pkg/interface/src/apps/chat/components/chat.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/interface/src/apps/chat/components/chat.js b/pkg/interface/src/apps/chat/components/chat.js index e43ae6b0c8..817f9265cf 100644 --- a/pkg/interface/src/apps/chat/components/chat.js +++ b/pkg/interface/src/apps/chat/components/chat.js @@ -22,6 +22,7 @@ function getNumPending(props) { const ACTIVITY_TIMEOUT = 60000; // a minute const DEFAULT_BACKLOG_SIZE = 300; +const MAX_BACKLOG_SIZE = 1000; function scrollIsAtTop(container) { if ((navigator.userAgent.includes("Safari") && @@ -136,14 +137,15 @@ export class ChatScreen extends Component { const unread = props.length - props.read; const unreadUnloaded = unread - props.envelopes.length; + const excessUnread = unreadUnloaded > MAX_BACKLOG_SIZE; - if(unreadUnloaded + 20 > DEFAULT_BACKLOG_SIZE) { + if(!excessUnread && unreadUnloaded + 20 > DEFAULT_BACKLOG_SIZE) { this.askForMessages(unreadUnloaded + 20); } else { this.askForMessages(DEFAULT_BACKLOG_SIZE); } - if(props.read === props.length){ + if(excessUnread || props.read === props.length){ this.scrolledToMarker = true; this.setState( {