diff --git a/services/web/app/views/project/editor/chat.jade b/services/web/app/views/project/editor/chat.jade index ce8c59d2f5..668f5acb68 100644 --- a/services/web/app/views/project/editor/chat.jade +++ b/services/web/app/views/project/editor/chat.jade @@ -4,7 +4,7 @@ aside.chat( ) .messages( infinite-scroll="loadMoreMessages()" - infinite-scroll-disabled="chat.loading || chat.atEnd" + infinite-scroll-disabled="chat.loading || chat.atEnd || chat.errored" infinite-scroll-initialize="ui.chatOpen" infinite-scroll-upwards="true" update-scroll-bottom-on="updateScrollPosition" diff --git a/services/web/public/coffee/ide/chat/services/chatMessages.coffee b/services/web/public/coffee/ide/chat/services/chatMessages.coffee index d322e0277d..f9e47f6e99 100644 --- a/services/web/public/coffee/ide/chat/services/chatMessages.coffee +++ b/services/web/public/coffee/ide/chat/services/chatMessages.coffee @@ -11,6 +11,7 @@ define [ messages: [] loading: false atEnd: false + errored:false nextBeforeTimestamp: null newMessage: null } @@ -38,11 +39,10 @@ define [ chat.loadMoreMessages = () -> return if chat.state.atEnd - + return if chat.state.errored url = MESSAGES_URL + "?limit=#{MESSAGE_LIMIT}" if chat.state.nextBeforeTimestamp? url += "&before=#{chat.state.nextBeforeTimestamp}" - chat.state.loading = true return $http .get(url) @@ -52,9 +52,13 @@ define [ chat.state.atEnd = true if !messages.reverse? Raven?.captureException(new Error("messages has no reverse property #{JSON.stringify(messages)}")) - messages.reverse() - prependMessages(messages) - chat.state.nextBeforeTimestamp = chat.state.messages[0]?.timestamp + if typeof messages.reverse isnt 'function' + Raven?.captureException(new Error("messages.reverse not a function #{typeof(messages.reverse)} #{JSON.stringify(messages)}")) + chat.state.errored = true + else + messages.reverse() + prependMessages(messages) + chat.state.nextBeforeTimestamp = chat.state.messages[0]?.timestamp TIMESTAMP_GROUP_SIZE = 5 * 60 * 1000 # 5 minutes