mirror of
https://github.com/chylex/Discord-History-Tracker.git
synced 2025-04-13 15:27:16 +03:00
Fix autoscroll & channel beginning detection after a Discord update
References #114
This commit is contained in:
parent
a914113b33
commit
f460a582ac
@ -7,24 +7,6 @@ var DISCORD = (function(){
|
||||
return getMessageContainerElement().querySelector("[class*='scroller-']");
|
||||
};
|
||||
|
||||
var checkTopSpecialMessageElement = function(view, cls){
|
||||
cls = `${cls}-`;
|
||||
const selector = `[class*="${cls}"]`;
|
||||
|
||||
for(let child of view.children){
|
||||
let childClass = child.className;
|
||||
|
||||
if (childClass.includes(cls) || child.querySelector(selector)){
|
||||
return true;
|
||||
}
|
||||
else if (childClass.includes("message-")){
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
var observerTimer = 0, waitingForCleanup = 0;
|
||||
|
||||
return {
|
||||
@ -38,7 +20,7 @@ var DISCORD = (function(){
|
||||
if (!view){
|
||||
restartTimer(500);
|
||||
}
|
||||
else if (!checkTopSpecialMessageElement(view, "loadingMore")){
|
||||
else{
|
||||
let messages = getMessageContainerElement().children.length;
|
||||
|
||||
if (messages < 100){
|
||||
@ -59,13 +41,10 @@ var DISCORD = (function(){
|
||||
}, 1);
|
||||
}
|
||||
|
||||
callback(checkTopSpecialMessageElement(view, "hasMore"));
|
||||
callback();
|
||||
restartTimer(200);
|
||||
}
|
||||
}
|
||||
else{
|
||||
restartTimer(25);
|
||||
}
|
||||
};
|
||||
|
||||
var restartTimer = function(delay){
|
||||
@ -206,8 +185,7 @@ var DISCORD = (function(){
|
||||
* Returns true if there are more messages available or if they're still loading.
|
||||
*/
|
||||
hasMoreMessages: function(){
|
||||
let view = getMessageContainerElement();
|
||||
return checkTopSpecialMessageElement(view, "hasMore") || checkTopSpecialMessageElement(view, "loadingMore");
|
||||
return document.querySelector("#messagesNavigationDescription + [class^=container]") === null;
|
||||
},
|
||||
|
||||
/*
|
||||
|
@ -29,7 +29,7 @@ let stopTrackingDelayed = function(callback){
|
||||
}, 200); // give the user visual feedback after clicking the button before switching off
|
||||
};
|
||||
|
||||
DISCORD.setupMessageUpdateCallback(hasMoreMessages => {
|
||||
DISCORD.setupMessageUpdateCallback(() => {
|
||||
if (STATE.isTracking() && ignoreMessageCallback.size === 0){
|
||||
let info = DISCORD.getSelectedChannel();
|
||||
|
||||
@ -59,12 +59,14 @@ DISCORD.setupMessageUpdateCallback(hasMoreMessages => {
|
||||
if (!hasUpdatedFile && !STATE.isMessageFresh(messages[0].id)){
|
||||
action = SETTINGS.afterSavedMsg;
|
||||
}
|
||||
else if (!hasMoreMessages){
|
||||
else if (!DISCORD.hasMoreMessages()){
|
||||
action = SETTINGS.afterFirstMsg;
|
||||
}
|
||||
|
||||
if (action === null){
|
||||
DISCORD.loadOlderMessages();
|
||||
if (hasUpdatedFile){
|
||||
DISCORD.loadOlderMessages();
|
||||
}
|
||||
}
|
||||
else{
|
||||
ignoreMessageCallback.add("stalling");
|
||||
|
Loading…
x
Reference in New Issue
Block a user