RossMods: Debounce online status display

This commit is contained in:
Cohee 2024-09-29 19:13:19 +03:00
parent 2f43c8e227
commit 8061f45368

View File

@ -56,15 +56,19 @@ let counterNonce = Date.now();
const observerConfig = { childList: true, subtree: true }; const observerConfig = { childList: true, subtree: true };
const countTokensDebounced = debounce(RA_CountCharTokens, debounce_timeout.relaxed); const countTokensDebounced = debounce(RA_CountCharTokens, debounce_timeout.relaxed);
const countTokensShortDebounced = debounce(RA_CountCharTokens, debounce_timeout.short);
const checkStatusDebounced = debounce(RA_checkOnlineStatus, debounce_timeout.short);
const observer = new MutationObserver(function (mutations) { const observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) { mutations.forEach(function (mutation) {
if (!(mutation.target instanceof HTMLElement)) {
return;
}
if (mutation.target.classList.contains('online_status_text')) { if (mutation.target.classList.contains('online_status_text')) {
RA_checkOnlineStatus(); checkStatusDebounced();
} else if (mutation.target.parentNode === SelectedCharacterTab) { } else if (mutation.target.parentNode === SelectedCharacterTab) {
setTimeout(RA_CountCharTokens, 200); countTokensShortDebounced();
} else if (mutation.target.classList.contains('mes_text')) { } else if (mutation.target.classList.contains('mes_text')) {
if (mutation.target instanceof HTMLElement) {
for (const element of mutation.target.getElementsByTagName('math')) { for (const element of mutation.target.getElementsByTagName('math')) {
element.childNodes.forEach(function (child) { element.childNodes.forEach(function (child) {
if (child.nodeType === Node.TEXT_NODE) { if (child.nodeType === Node.TEXT_NODE) {
@ -73,7 +77,6 @@ const observer = new MutationObserver(function (mutations) {
}); });
} }
} }
}
}); });
}); });
@ -725,9 +728,7 @@ export function addSafariPatch() {
export function initRossMods() { export function initRossMods() {
// initial status check // initial status check
setTimeout(() => { checkStatusDebounced();
RA_checkOnlineStatus();
}, 100);
if (power_user.auto_load_chat) { if (power_user.auto_load_chat) {
RA_autoloadchat(); RA_autoloadchat();
@ -752,7 +753,7 @@ export function initRossMods() {
setTimeout(() => RA_autoconnect(PrevAPI), 100); setTimeout(() => RA_autoconnect(PrevAPI), 100);
}); });
$('#api_button').click(function () { setTimeout(RA_checkOnlineStatus, 100); }); $('#api_button').on('click', () => checkStatusDebounced());
//toggle pin class when lock toggle clicked //toggle pin class when lock toggle clicked
$(RPanelPin).on('click', function () { $(RPanelPin).on('click', function () {