0.2.29
RustBox CI / rustbox (push) Canceled after 0s

This commit is contained in:
Mateusz Gruszczyński committed 2026-11-07 10:27:26 +01:00
1 parent 065fc87306
commit 1b12899ff6
8 files changed
+38 -13

No files matched your search

+15
View File
@@ -662,6 +662,19 @@ async function resyncRealtimeState() {
return state.realtimeSyncPromise;
}
async function refreshOpenThread() {
const current = state.currentDetail;
if (!current) return;
const folder = current.folder;
const uid = current.uid;
try {
const fresh = await request(`/messages/${encodeURIComponent(folder)}/${uid}`, { method: "GET" });
if (!state.currentDetail || state.currentDetail.folder !== folder || Number(state.currentDetail.uid) !== Number(uid)) return;
state.currentDetail.thread = fresh.thread || [];
renderThread(state.currentDetail);
} catch (_) { }
}
function scheduleRealtimeRefresh(event, accountId) {
if (accountId !== state.accountId) return;
state.realtimeRefreshEvents.push(event);
@@ -669,6 +682,7 @@ function scheduleRealtimeRefresh(event, accountId) {
state.realtimeRefreshTimer = setTimeout(async () => {
const events = state.realtimeRefreshEvents.splice(0);
const folderTreeChanged = events.some((item) => item.type === "FolderUpdated");
const hasNewMessages = events.some((item) => item.type === "NewMessages");
const newInCurrent = events.some((item) => item.type === "NewMessages" && item.data?.folder === state.folder);
const structuralFlagsInCurrent = events.some((item) => item.type === "FlagsChanged" && item.data?.folder === state.folder && !(item.data?.changes || []).length);
const tasks = [];
@@ -678,6 +692,7 @@ function scheduleRealtimeRefresh(event, accountId) {
else tasks.push(loadMessages(true, { background: true }));
}
if (tasks.length) await Promise.all(tasks);
if (hasNewMessages && state.currentDetail) await refreshOpenThread();
}, 80);
}