@bobfrankston/rmfmail 1.1.221 → 1.1.225
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/mailx.js +54 -1
- package/bin/mailx.js.map +1 -1
- package/bin/mailx.ts +44 -1
- package/client/app.bundle.js +17 -7
- package/client/app.bundle.js.map +2 -2
- package/client/app.js +8 -0
- package/client/app.js.map +1 -1
- package/client/app.ts +7 -0
- package/client/components/message-list.js +14 -5
- package/client/components/message-list.js.map +1 -1
- package/client/components/message-list.ts +15 -5
- package/client/components/message-viewer.js +14 -0
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +9 -0
- package/client/compose/compose.bundle.js +2 -2
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/lib/api-client.js +2 -2
- package/client/lib/api-client.js.map +1 -1
- package/client/lib/api-client.ts +2 -2
- package/client/lib/mailxapi.js +2 -2
- package/client/styles/layout.css +1 -0
- package/package.json +1 -1
- package/packages/mailx-service/db-worker.js +1 -1
- package/packages/mailx-service/db-worker.js.map +1 -1
- package/packages/mailx-service/db-worker.ts +2 -2
- package/packages/mailx-service/index.d.ts +1 -1
- package/packages/mailx-service/index.d.ts.map +1 -1
- package/packages/mailx-service/index.js +2 -2
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-service/index.ts +2 -2
- package/packages/mailx-service/jsonrpc.js +1 -1
- package/packages/mailx-service/jsonrpc.js.map +1 -1
- package/packages/mailx-service/jsonrpc.ts +1 -1
- package/packages/mailx-store/db.d.ts +1 -1
- package/packages/mailx-store/db.d.ts.map +1 -1
- package/packages/mailx-store/db.js +41 -3
- package/packages/mailx-store/db.js.map +1 -1
- package/packages/mailx-store/db.ts +35 -3
- package/packages/mailx-store/store.d.ts +1 -1
- package/packages/mailx-store/store.d.ts.map +1 -1
- package/packages/mailx-store/store.js +2 -2
- package/packages/mailx-store/store.js.map +1 -1
- package/packages/mailx-store/store.ts +2 -2
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-20088 → node_modules.npmglobalize-stash-62732}/.package-lock.json +0 -0
package/client/app.bundle.js
CHANGED
|
@@ -190,9 +190,9 @@ function getMessages(accountId, folderId, page = 1, pageSize = 50, flaggedOnly =
|
|
|
190
190
|
abortMessageListRequests();
|
|
191
191
|
return ipc().getMessages(accountId, folderId, page, pageSize, sort, sortDir, void 0, flaggedOnly);
|
|
192
192
|
}
|
|
193
|
-
function getUnifiedInbox(page = 1, pageSize = 50) {
|
|
193
|
+
function getUnifiedInbox(page = 1, pageSize = 50, flaggedOnly = false) {
|
|
194
194
|
abortMessageListRequests();
|
|
195
|
-
return ipc().getUnifiedInbox(page, pageSize);
|
|
195
|
+
return ipc().getUnifiedInbox(page, pageSize, flaggedOnly);
|
|
196
196
|
}
|
|
197
197
|
function searchMessages(query, page = 1, pageSize = 50, scope = "all", accountId = "", folderId = 0, includeTrashSpam = false) {
|
|
198
198
|
return ipc().searchMessages(query, page, pageSize, scope, accountId, folderId, includeTrashSpam);
|
|
@@ -1934,6 +1934,13 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
|
|
|
1934
1934
|
} catch (e) {
|
|
1935
1935
|
const err = e.message || "Unknown error";
|
|
1936
1936
|
console.error("showMessage error:", e);
|
|
1937
|
+
const failEnv = cached || lastEnvelope || envelope;
|
|
1938
|
+
if (failEnv) {
|
|
1939
|
+
try {
|
|
1940
|
+
renderHeaderFromEnvelope(headerEl, failEnv);
|
|
1941
|
+
} catch {
|
|
1942
|
+
}
|
|
1943
|
+
}
|
|
1937
1944
|
const isNotFound = /deleted from the server|isNotFound|not found|Not Found|404/.test(err);
|
|
1938
1945
|
if (isNotFound) {
|
|
1939
1946
|
document.dispatchEvent(new CustomEvent("mailx-remove-stale", {
|
|
@@ -3186,9 +3193,11 @@ async function loadUnifiedInbox(autoSelect = true) {
|
|
|
3186
3193
|
const fromHeader = document.querySelector(".ml-col-from");
|
|
3187
3194
|
if (fromHeader)
|
|
3188
3195
|
fromHeader.textContent = "From";
|
|
3196
|
+
const flaggedOnly = body.classList.contains("flagged-only");
|
|
3197
|
+
const unifiedCacheKey = flaggedOnly ? CACHE_KEY_UNIFIED + ":flagged" : CACHE_KEY_UNIFIED;
|
|
3189
3198
|
const remembered = positionMemory.get(CACHE_KEY_UNIFIED);
|
|
3190
3199
|
const savedScroll = remembered?.scroll ?? (!autoSelect ? body.scrollTop : 0);
|
|
3191
|
-
const cached = listCache.get(
|
|
3200
|
+
const cached = listCache.get(unifiedCacheKey);
|
|
3192
3201
|
if (cached) {
|
|
3193
3202
|
totalMessages = cached.total;
|
|
3194
3203
|
setMessages(cached.items);
|
|
@@ -3204,16 +3213,16 @@ async function loadUnifiedInbox(autoSelect = true) {
|
|
|
3204
3213
|
body.innerHTML = `<div class="ml-empty">Loading...</div>`;
|
|
3205
3214
|
}
|
|
3206
3215
|
try {
|
|
3207
|
-
const result = await getUnifiedInbox(1);
|
|
3216
|
+
const result = await getUnifiedInbox(1, 50, flaggedOnly);
|
|
3208
3217
|
if (myGen !== loadGen)
|
|
3209
3218
|
return;
|
|
3210
3219
|
totalMessages = result.total;
|
|
3211
|
-
listCache.set(
|
|
3220
|
+
listCache.set(unifiedCacheKey, { items: result.items, total: result.total, timestamp: Date.now() });
|
|
3212
3221
|
if (cached && listResultsEqual(cached.items, result.items))
|
|
3213
3222
|
return;
|
|
3214
3223
|
if (result.items.length === 0) {
|
|
3215
3224
|
setMessages([]);
|
|
3216
|
-
body.innerHTML = `<div class="ml-empty">${result.total > 0 ? `${result.total} messages syncing...` : "Syncing \u2014 messages will appear shortly"}</div>`;
|
|
3225
|
+
body.innerHTML = flaggedOnly ? `<div class="ml-empty">No flagged messages</div>` : `<div class="ml-empty">${result.total > 0 ? `${result.total} messages syncing...` : "Syncing \u2014 messages will appear shortly"}</div>`;
|
|
3217
3226
|
return;
|
|
3218
3227
|
}
|
|
3219
3228
|
setMessages(result.items);
|
|
@@ -3403,7 +3412,7 @@ async function loadMoreMessages() {
|
|
|
3403
3412
|
currentPage++;
|
|
3404
3413
|
try {
|
|
3405
3414
|
const flaggedOnly = body.classList.contains("flagged-only");
|
|
3406
|
-
const result = searchMode ? await searchMessages(currentSearchQuery, currentPage) : unifiedMode ? await getUnifiedInbox(currentPage) : await getMessages(currentAccountId2, currentFolderId, currentPage, 50, flaggedOnly);
|
|
3415
|
+
const result = searchMode ? await searchMessages(currentSearchQuery, currentPage) : unifiedMode ? await getUnifiedInbox(currentPage, 50, flaggedOnly) : await getMessages(currentAccountId2, currentFolderId, currentPage, 50, flaggedOnly);
|
|
3407
3416
|
const current = getMessages2();
|
|
3408
3417
|
setMessages([...current, ...result.items]);
|
|
3409
3418
|
appendMessages(body, unifiedMode ? "" : currentAccountId2, result.items);
|
|
@@ -9382,6 +9391,7 @@ document.addEventListener("keydown", (e) => {
|
|
|
9382
9391
|
document.getElementById("message-viewer")?.addEventListener("dblclick", (e) => {
|
|
9383
9392
|
const target = e.target;
|
|
9384
9393
|
if (target?.closest("a, button, input, select, textarea, [contenteditable]")) return;
|
|
9394
|
+
if (target?.closest(".mv-header")) return;
|
|
9385
9395
|
toggleFullscreenPreview();
|
|
9386
9396
|
});
|
|
9387
9397
|
function focusPaneById(id) {
|