@bobfrankston/rmfmail 1.1.160 → 1.1.162
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.bundle.js +40 -4
- package/client/app.bundle.js.map +2 -2
- package/client/app.js +45 -1
- package/client/app.js.map +1 -1
- package/client/app.ts +45 -1
- package/client/components/message-list.js +11 -1
- package/client/components/message-list.js.map +1 -1
- package/client/components/message-list.ts +11 -1
- package/client/components/message-viewer.js +1 -0
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +1 -0
- package/client/compose/compose.bundle.js +12 -0
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/compose/compose.js +24 -1
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +25 -1
- package/client/styles/components.css +13 -0
- package/package.json +3 -3
- package/packages/mailx-imap/index.d.ts.map +1 -1
- package/packages/mailx-imap/index.js +14 -2
- package/packages/mailx-imap/index.js.map +1 -1
- package/packages/mailx-imap/index.ts +13 -2
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +1 -1
- package/packages/mailx-store/package.json +1 -1
- package/packages/mailx-store/store.d.ts +5 -0
- package/packages/mailx-store/store.d.ts.map +1 -1
- package/packages/mailx-store/store.js +2 -0
- package/packages/mailx-store/store.js.map +1 -1
- package/packages/mailx-store/store.ts +7 -0
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-55716 → node_modules.npmglobalize-stash-40852}/.package-lock.json +0 -0
package/client/app.js
CHANGED
|
@@ -3548,6 +3548,7 @@ viewBtn?.addEventListener("click", (e) => {
|
|
|
3548
3548
|
restoreToolbarDropdown("view-dropdown", "view-menu");
|
|
3549
3549
|
if (viewDropdown)
|
|
3550
3550
|
viewDropdown.hidden = !viewDropdown.hidden;
|
|
3551
|
+
refreshToolbarOverlayShield();
|
|
3551
3552
|
});
|
|
3552
3553
|
// Capture-phase pointerdown so we run BEFORE any handler that calls
|
|
3553
3554
|
// stopPropagation. The earlier bubble-phase click listener missed clicks
|
|
@@ -3570,7 +3571,46 @@ document.addEventListener("pointerdown", (e) => {
|
|
|
3570
3571
|
if (settingsDropdown && !settingsDropdown.hidden && !target.closest("#settings-menu") && !target.closest("#settings-dropdown")) {
|
|
3571
3572
|
settingsDropdown.hidden = true;
|
|
3572
3573
|
}
|
|
3574
|
+
refreshToolbarOverlayShield();
|
|
3573
3575
|
}, true);
|
|
3576
|
+
// Click-to-dismiss for the toolbar dropdowns relies on `pointerdown` firing
|
|
3577
|
+
// on the parent document. Clicks inside the compose iframe stay in the
|
|
3578
|
+
// iframe's document and never bubble out, so a Settings/View menu opened
|
|
3579
|
+
// over compose used to stay stuck until the user hit Escape or the toolbar
|
|
3580
|
+
// button again. Shield the overlay with a transparent fullscreen catcher
|
|
3581
|
+
// while any toolbar dropdown is open — its pointerdown lands here in the
|
|
3582
|
+
// parent doc, triggering the same outside-click close. The shield sits
|
|
3583
|
+
// above compose (z 1600) but below the dropdown itself (z 2000).
|
|
3584
|
+
function refreshToolbarOverlayShield() {
|
|
3585
|
+
const dropdownOpen = ["settings-dropdown", "view-dropdown", "restart-dropdown"]
|
|
3586
|
+
.some(id => {
|
|
3587
|
+
const el = document.getElementById(id);
|
|
3588
|
+
return el && !el.hidden;
|
|
3589
|
+
});
|
|
3590
|
+
const hasOverlay = !!document.querySelector(".compose-overlay, .popout-overlay");
|
|
3591
|
+
let shield = document.getElementById("tb-overlay-shield");
|
|
3592
|
+
if (dropdownOpen && hasOverlay) {
|
|
3593
|
+
if (!shield) {
|
|
3594
|
+
shield = document.createElement("div");
|
|
3595
|
+
shield.id = "tb-overlay-shield";
|
|
3596
|
+
shield.style.cssText = "position:fixed;inset:0;z-index:1999;background:transparent;";
|
|
3597
|
+
shield.addEventListener("pointerdown", (ev) => {
|
|
3598
|
+
ev.preventDefault();
|
|
3599
|
+
ev.stopPropagation();
|
|
3600
|
+
for (const id of ["settings-dropdown", "view-dropdown", "restart-dropdown"]) {
|
|
3601
|
+
const dd = document.getElementById(id);
|
|
3602
|
+
if (dd)
|
|
3603
|
+
dd.hidden = true;
|
|
3604
|
+
}
|
|
3605
|
+
shield?.remove();
|
|
3606
|
+
});
|
|
3607
|
+
document.body.appendChild(shield);
|
|
3608
|
+
}
|
|
3609
|
+
}
|
|
3610
|
+
else if (shield) {
|
|
3611
|
+
shield.remove();
|
|
3612
|
+
}
|
|
3613
|
+
}
|
|
3574
3614
|
// Escape always closes any open dropdown/backdrop, regardless of how it was
|
|
3575
3615
|
// opened or whether an outside-click handler missed firing. Last-resort
|
|
3576
3616
|
// escape hatch for the "stuck modal" case.
|
|
@@ -3595,8 +3635,10 @@ document.addEventListener("keydown", (e) => {
|
|
|
3595
3635
|
themeSub.hidden = true;
|
|
3596
3636
|
closed = true;
|
|
3597
3637
|
}
|
|
3598
|
-
if (closed)
|
|
3638
|
+
if (closed) {
|
|
3599
3639
|
e.preventDefault();
|
|
3640
|
+
refreshToolbarOverlayShield();
|
|
3641
|
+
}
|
|
3600
3642
|
});
|
|
3601
3643
|
// Restore saved view settings
|
|
3602
3644
|
const savedTwoLine = localStorage.getItem("mailx-two-line") === "true";
|
|
@@ -4694,6 +4736,7 @@ settingsBtn?.addEventListener("click", (e) => {
|
|
|
4694
4736
|
restoreToolbarDropdown("settings-dropdown", "settings-menu");
|
|
4695
4737
|
if (settingsDropdown)
|
|
4696
4738
|
settingsDropdown.hidden = !settingsDropdown.hidden;
|
|
4739
|
+
refreshToolbarOverlayShield();
|
|
4697
4740
|
});
|
|
4698
4741
|
// Close handled by the shared document click handler above
|
|
4699
4742
|
// Load current editor setting from server
|
|
@@ -5113,6 +5156,7 @@ document.addEventListener("mailx-popout-message", (async (e) => {
|
|
|
5113
5156
|
accounts: accts.map((a) => ({ id: a.id, name: a.name, email: a.email, signature: a.signature, sig: a.sig })),
|
|
5114
5157
|
draftUid: msg.uid,
|
|
5115
5158
|
draftFolderId: msg.folderId,
|
|
5159
|
+
draftId: msg.mailxDraftId || "",
|
|
5116
5160
|
};
|
|
5117
5161
|
sessionStorage.setItem("composeInit", JSON.stringify(init));
|
|
5118
5162
|
showComposeOverlay(msg.subject ? `Edit: ${msg.subject}` : "Edit draft");
|