Parcourir la source

if chat errors don't keep trying to get more chat messages

causes loop which is why we have so many sentury errors
Henry Oswald il y a 11 ans
Parent
commit
b06c9f509e

+ 1 - 1
services/web/app/views/project/editor/chat.jade

@@ -4,7 +4,7 @@ aside.chat(
 )
 )
 	.messages(
 	.messages(
 		infinite-scroll="loadMoreMessages()"
 		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-initialize="ui.chatOpen"
 		infinite-scroll-upwards="true"
 		infinite-scroll-upwards="true"
 		update-scroll-bottom-on="updateScrollPosition"
 		update-scroll-bottom-on="updateScrollPosition"

+ 9 - 5
services/web/public/coffee/ide/chat/services/chatMessages.coffee

@@ -11,6 +11,7 @@ define [
 				messages: []
 				messages: []
 				loading: false
 				loading: false
 				atEnd: false
 				atEnd: false
+				errored:false
 				nextBeforeTimestamp: null
 				nextBeforeTimestamp: null
 				newMessage: null
 				newMessage: null
 		}
 		}
@@ -38,11 +39,10 @@ define [
 			
 			
 		chat.loadMoreMessages = () ->
 		chat.loadMoreMessages = () ->
 			return if chat.state.atEnd
 			return if chat.state.atEnd
-			
+			return if chat.state.errored
 			url = MESSAGES_URL + "?limit=#{MESSAGE_LIMIT}"
 			url = MESSAGES_URL + "?limit=#{MESSAGE_LIMIT}"
 			if chat.state.nextBeforeTimestamp?
 			if chat.state.nextBeforeTimestamp?
 				url += "&before=#{chat.state.nextBeforeTimestamp}"
 				url += "&before=#{chat.state.nextBeforeTimestamp}"
-			
 			chat.state.loading = true
 			chat.state.loading = true
 			return $http
 			return $http
 				.get(url)
 				.get(url)
@@ -52,9 +52,13 @@ define [
 						chat.state.atEnd = true
 						chat.state.atEnd = true
 					if !messages.reverse?
 					if !messages.reverse?
 						Raven?.captureException(new Error("messages has no reverse property #{JSON.stringify(messages)}"))
 						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
 		TIMESTAMP_GROUP_SIZE = 5 * 60 * 1000 # 5 minutes