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];
|
||||||
|
if (!storedTopics.includes(currentTopic)) {
|
||||||
subscribeInternal(currentTopic, false,0);
|
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…
Reference in a new issue