@bobfrankston/rmfmail 1.0.567 → 1.0.570
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/client/app.js +13 -5
- package/client/app.js.map +1 -1
- package/client/app.ts +12 -4
- package/client/components/folder-tree.js +11 -0
- package/client/components/folder-tree.js.map +1 -1
- package/client/components/folder-tree.ts +8 -0
- package/client/components/message-list.js +6 -3
- package/client/components/message-list.js.map +1 -1
- package/client/components/message-list.ts +6 -3
- package/client/components/message-viewer.js +58 -5
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +58 -5
- package/client/index.html +1 -0
- 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/components.css +13 -0
- package/package.json +3 -3
- 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 +5 -3
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-service/index.ts +5 -3
- 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-service/local-store.d.ts +1 -1
- package/packages/mailx-service/local-store.d.ts.map +1 -1
- package/packages/mailx-service/local-store.js +2 -2
- package/packages/mailx-service/local-store.js.map +1 -1
- package/packages/mailx-service/local-store.ts +2 -2
- 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 +13 -2
- package/packages/mailx-store/db.js.map +1 -1
- package/packages/mailx-store/db.ts +13 -2
package/client/app.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { initFolderTree, refreshFolderTree, updateFolderCounts, setFolderSynced, getFolderSynced, setOutboxTotal } from "./components/folder-tree.js";
|
|
6
6
|
import { initMessageList, loadMessages, loadUnifiedInbox, loadSearchResults, reloadCurrentFolder, clearSearchMode, getSelectedMessages, markBodiesCached, getCurrentFocused, releaseFocus, removeMessagesAndReconcile, setRowFlagged, scrollFocusedIntoView, refreshPriorityIndex } from "./components/message-list.js";
|
|
7
|
-
import {
|
|
7
|
+
import { getCurrentMessage, initViewer, popOutCurrentMessage, toggleFullscreenPreview, showPreviewBodyMenu } from "./components/message-viewer.js";
|
|
8
8
|
import { connectWebSocket, onWsEvent, triggerSync, syncAccount, reauthenticate, getAccounts, getFolders, deleteMessages, undeleteMessage, restartServer, getSyncPending, getVersion, getSettings, saveSettings, getAutocompleteSettings, saveAutocompleteSettings, repairAccounts, updateFlags, markAsSpamMessages, logClientEvent, sendMessage as apiSendMessage } from "./lib/api-client.js";
|
|
9
9
|
import * as messageState from "./lib/message-state.js";
|
|
10
10
|
// ── New message badge (favicon + title) ──
|
|
@@ -324,9 +324,14 @@ initFolderTree(folderTree, (accountId, folderId, folderName, specialUse) => {
|
|
|
324
324
|
setTitle(`${APP_NAME} - All Inboxes`);
|
|
325
325
|
setNarrowFolderTitle("All Inboxes");
|
|
326
326
|
});
|
|
327
|
-
initMessageList((
|
|
328
|
-
|
|
329
|
-
//
|
|
327
|
+
initMessageList((_accountId, _uid, _folderId) => {
|
|
328
|
+
// The list row's setFocus() already drove the viewer with its own
|
|
329
|
+
// envelope (header + preview paint synchronously, body fetches in
|
|
330
|
+
// background). Calling showMessage here a SECOND time without the
|
|
331
|
+
// envelope wiped the good render and forced a bare "Loading…"
|
|
332
|
+
// placeholder until the body IPC returned — making every click feel
|
|
333
|
+
// like a network round-trip. This callback now only handles the
|
|
334
|
+
// narrow-screen layout switch.
|
|
330
335
|
if (window.innerWidth <= 768) {
|
|
331
336
|
document.getElementById("message-viewer")?.classList.add("narrow-active");
|
|
332
337
|
document.getElementById("message-list")?.classList.add("narrow-hidden");
|
|
@@ -1450,8 +1455,10 @@ function doSearch(immediate = false) {
|
|
|
1450
1455
|
// "server" which spans all folders on all accounts. Local scope dropdown
|
|
1451
1456
|
// is unchanged (all/current) for the local-only case.
|
|
1452
1457
|
const serverCheck = document.getElementById("search-server-too");
|
|
1458
|
+
const trashCheck = document.getElementById("search-include-trash");
|
|
1453
1459
|
const localScope = searchScope?.value || "all";
|
|
1454
1460
|
const effectiveScope = serverCheck?.checked ? "server" : localScope;
|
|
1461
|
+
const includeTrash = !!trashCheck?.checked;
|
|
1455
1462
|
// "This folder" scope: instant client-side filter on debounce, server search on Enter
|
|
1456
1463
|
if (effectiveScope === "current" && !immediate) {
|
|
1457
1464
|
// Client-side filter of visible rows
|
|
@@ -1465,7 +1472,7 @@ function doSearch(immediate = false) {
|
|
|
1465
1472
|
}
|
|
1466
1473
|
return;
|
|
1467
1474
|
}
|
|
1468
|
-
loadSearchResults(query, effectiveScope, currentAccountId, currentFolderId);
|
|
1475
|
+
loadSearchResults(query, effectiveScope, currentAccountId, currentFolderId, includeTrash);
|
|
1469
1476
|
setTitle(`${APP_NAME} - Search: ${query}`);
|
|
1470
1477
|
}
|
|
1471
1478
|
// Track current folder for scoped search
|
|
@@ -1523,6 +1530,7 @@ function rerunActiveSearch() {
|
|
|
1523
1530
|
}
|
|
1524
1531
|
searchScope?.addEventListener("change", rerunActiveSearch);
|
|
1525
1532
|
document.getElementById("search-server-too")?.addEventListener("change", rerunActiveSearch);
|
|
1533
|
+
document.getElementById("search-include-trash")?.addEventListener("change", rerunActiveSearch);
|
|
1526
1534
|
// Message state handles move/delete — no manual event listener needed
|
|
1527
1535
|
// ── Folder filter ──
|
|
1528
1536
|
const ftFilterInput = document.getElementById("ft-filter-input");
|