Fix Chrome/Firefox inconsistencies with sorting
This commit is contained in:
		
							parent
							
								
									a1385f6785
								
							
						
					
					
						commit
						b9b53bcdf0
					
				
					 2 changed files with 17 additions and 20 deletions
				
			
		|  | @ -278,8 +278,9 @@ li { | ||||||
| 
 | 
 | ||||||
| #detail #detailMain { | #detail #detailMain { | ||||||
|     max-width: 900px; |     max-width: 900px; | ||||||
|     margin: 0 auto 50px auto; |     margin: 0 auto; | ||||||
|     position: relative; /* required for close button's "position: absolute" */ |     position: relative; /* required for close button's "position: absolute" */ | ||||||
|  |     padding-bottom: 50px; /* Chrome and Firefox behave differently regarding bottom margin */ | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #detail #detailCloseButton { | #detail #detailCloseButton { | ||||||
|  |  | ||||||
|  | @ -73,7 +73,7 @@ const subscribeInternal = (topic, persist, delaySec) => { | ||||||
|         eventSource.onmessage = (e) => { |         eventSource.onmessage = (e) => { | ||||||
|             const event = JSON.parse(e.data); |             const event = JSON.parse(e.data); | ||||||
|             topics[topic]['messages'].push(event); |             topics[topic]['messages'].push(event); | ||||||
|             topics[topic]['messages'].sort((a, b) => { return a.time < b.time; }) // Newest first
 |             topics[topic]['messages'].sort((a, b) => { return a.time < b.time ? 1 : -1; }); // Newest first
 | ||||||
|             if (currentTopic === topic) { |             if (currentTopic === topic) { | ||||||
|                 rerenderDetailView(); |                 rerenderDetailView(); | ||||||
|             } |             } | ||||||
|  | @ -123,7 +123,7 @@ const fetchCachedMessages = async (topic) => { | ||||||
|         const message = JSON.parse(line); |         const message = JSON.parse(line); | ||||||
|         topics[topic]['messages'].push(message); |         topics[topic]['messages'].push(message); | ||||||
|     } |     } | ||||||
|     topics[topic]['messages'].sort((a, b) => { return a.time < b.time; }) // Newest first
 |     topics[topic]['messages'].sort((a, b) => { return a.time < b.time ? 1 : -1; }); // Newest first
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const showDetail = (topic) => { | const showDetail = (topic) => { | ||||||
|  | @ -258,27 +258,23 @@ if (!window["Notification"] || !window["EventSource"]) { | ||||||
| // Reset UI
 | // Reset UI
 | ||||||
| topicField.value = ""; | topicField.value = ""; | ||||||
| 
 | 
 | ||||||
|  | // Restore topics
 | ||||||
|  | const storedTopics = JSON.parse(localStorage.getItem('topics') || "[]"); | ||||||
|  | if (storedTopics) { | ||||||
|  |     storedTopics.forEach((topic) => { subscribeInternal(topic, true, 0); }); | ||||||
|  |     if (storedTopics.length === 0) { | ||||||
|  |         topicsHeader.style.display = 'none'; | ||||||
|  |     } | ||||||
|  | } else { | ||||||
|  |     topicsHeader.style.display = 'none'; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // (Temporarily) subscribe topic if we navigated to /sometopic URL
 | // (Temporarily) subscribe topic if we navigated to /sometopic URL
 | ||||||
| const match = location.pathname.match(/^\/([-_a-zA-Z0-9]{1,64})$/) // Regex must match Go & Android app!
 | const match = location.pathname.match(/^\/([-_a-zA-Z0-9]{1,64})$/) // Regex must match Go & Android app!
 | ||||||
| if (match) { | if (match) { | ||||||
|     currentTopic = match[1]; |     currentTopic = match[1]; | ||||||
|     subscribeInternal(currentTopic, false,0); |     if (!storedTopics.includes(currentTopic)) { | ||||||
| } |         subscribeInternal(currentTopic, false,0); | ||||||
| 
 |  | ||||||
| // Restore topics
 |  | ||||||
| const storedTopics = localStorage.getItem('topics'); |  | ||||||
| if (storedTopics) { |  | ||||||
|     const storedTopicsArray = JSON.parse(storedTopics); |  | ||||||
|     storedTopicsArray.forEach((topic) => { subscribeInternal(topic, true, 0); }); |  | ||||||
|     if (storedTopicsArray.length === 0) { |  | ||||||
|         topicsHeader.style.display = 'none'; |  | ||||||
|     } |  | ||||||
|     if (currentTopic) { |  | ||||||
|         currentTopicUnsubscribeOnClose = !storedTopicsArray.includes(currentTopic); |  | ||||||
|     } |  | ||||||
| } else { |  | ||||||
|     topicsHeader.style.display = 'none'; |  | ||||||
|     if (currentTopic) { |  | ||||||
|         currentTopicUnsubscribeOnClose = true; |         currentTopicUnsubscribeOnClose = true; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue