@bobfrankston/rmfmail 1.1.86 → 1.1.88
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/.commitmsg +9 -12
- package/client/app.bundle.js +24 -2
- package/client/app.bundle.js.map +2 -2
- package/client/components/message-list.js +20 -2
- package/client/components/message-list.js.map +1 -1
- package/client/components/message-list.ts +19 -1
- package/client/components/message-viewer.js +17 -0
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +15 -0
- package/client/compose/compose.bundle.js +33 -21
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/compose/compose.js +8 -9
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +8 -3
- package/client/lib/tinymce/skins/content/dark/content.js +10 -4
- package/client/lib/tinymce/skins/content/default/content.js +10 -4
- package/client/lib/tinymce/skins/content/document/content.js +10 -4
- package/client/lib/tinymce/skins/content/tinymce-5/content.js +10 -4
- package/client/lib/tinymce/skins/content/tinymce-5-dark/content.js +10 -4
- package/client/lib/tinymce/skins/content/writer/content.js +10 -4
- package/client/lib/tinymce/skins/ui/oxide/content.inline.js +10 -4
- package/client/lib/tinymce/skins/ui/oxide/content.js +10 -4
- package/client/lib/tinymce/skins/ui/oxide/skin.js +1 -4
- package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.js +1 -4
- package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.js +10 -4
- package/client/lib/tinymce/skins/ui/oxide-dark/content.js +10 -4
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.js +1 -4
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +1 -4
- package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.js +10 -4
- package/client/lib/tinymce/skins/ui/tinymce-5/content.js +10 -4
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.js +1 -4
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +1 -4
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.js +10 -4
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.js +10 -4
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -4
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +1 -4
- package/client/styles/components.css +6 -3
- package/npmchanges.md +35 -0
- package/package.json +1 -1
- package/client/lib/tinymce/skins/content/dark/content.js.map +0 -1
- package/client/lib/tinymce/skins/content/dark/content.min.js +0 -4
- package/client/lib/tinymce/skins/content/dark/content.min.js.map +0 -1
- package/client/lib/tinymce/skins/content/default/content.js.map +0 -1
- package/client/lib/tinymce/skins/content/default/content.min.js +0 -4
- package/client/lib/tinymce/skins/content/default/content.min.js.map +0 -1
- package/client/lib/tinymce/skins/content/document/content.js.map +0 -1
- package/client/lib/tinymce/skins/content/document/content.min.js +0 -4
- package/client/lib/tinymce/skins/content/document/content.min.js.map +0 -1
- package/client/lib/tinymce/skins/content/tinymce-5/content.js.map +0 -1
- package/client/lib/tinymce/skins/content/tinymce-5/content.min.js +0 -4
- package/client/lib/tinymce/skins/content/tinymce-5/content.min.js.map +0 -1
- package/client/lib/tinymce/skins/content/tinymce-5-dark/content.js.map +0 -1
- package/client/lib/tinymce/skins/content/tinymce-5-dark/content.min.js +0 -4
- package/client/lib/tinymce/skins/content/tinymce-5-dark/content.min.js.map +0 -1
- package/client/lib/tinymce/skins/content/writer/content.js.map +0 -1
- package/client/lib/tinymce/skins/content/writer/content.min.js +0 -4
- package/client/lib/tinymce/skins/content/writer/content.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide/content.inline.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide/content.inline.min.js +0 -4
- package/client/lib/tinymce/skins/ui/oxide/content.inline.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide/content.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide/content.min.js +0 -4
- package/client/lib/tinymce/skins/ui/oxide/content.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide/skin.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide/skin.min.js +0 -4
- package/client/lib/tinymce/skins/ui/oxide/skin.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.min.js +0 -4
- package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.min.js +0 -4
- package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide-dark/content.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide-dark/content.min.js +0 -4
- package/client/lib/tinymce/skins/ui/oxide-dark/content.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.min.js +0 -4
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.js.map +0 -1
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.js +0 -4
- package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.min.js +0 -4
- package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5/content.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5/content.min.js +0 -4
- package/client/lib/tinymce/skins/ui/tinymce-5/content.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.min.js +0 -4
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.js +0 -4
- package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.js +0 -4
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.min.js +0 -4
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.js +0 -4
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js.map +0 -1
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.js +0 -4
- package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.js.map +0 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-88224 → node_modules.npmglobalize-stash-73816}/.package-lock.json +0 -0
package/.commitmsg
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
Fix:
|
|
1
|
+
Fix: highlighted row with an empty viewer (selection/preview desync)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
so
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
dataset.key="update-available"; hideAlert() leaves that key alone unless
|
|
9
|
-
forced, and the X dismiss button passes force:true.
|
|
3
|
+
A list row could stay highlighted while the viewer showed "Select a
|
|
4
|
+
message to read". releaseFocus() only un-selected the tracked focusedRow,
|
|
5
|
+
so a stray .selected (multi-select remnant, or a row that kept the class
|
|
6
|
+
through an incremental rerender) was left highlighted after the viewer
|
|
7
|
+
had been cleared.
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
attachment actions.
|
|
9
|
+
releaseFocus() now strips every .selected row. focusRow() also sweeps
|
|
10
|
+
stray .selected in single-select mode before highlighting its row, so
|
|
11
|
+
the list can never show a highlight that doesn't match the viewer.
|
package/client/app.bundle.js
CHANGED
|
@@ -1665,6 +1665,19 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
|
|
|
1665
1665
|
chip.title = `${att.filename} (${att.mimeType})`;
|
|
1666
1666
|
chip.addEventListener("click", async (e) => {
|
|
1667
1667
|
e.preventDefault();
|
|
1668
|
+
if (chip.dataset.opening === "1")
|
|
1669
|
+
return;
|
|
1670
|
+
chip.dataset.opening = "1";
|
|
1671
|
+
const chipLabel = chip.textContent || "";
|
|
1672
|
+
chip.textContent = "\u23F3 Opening\u2026";
|
|
1673
|
+
const tStart = Date.now();
|
|
1674
|
+
const restoreChip = () => {
|
|
1675
|
+
const wait = Math.max(0, 600 - (Date.now() - tStart));
|
|
1676
|
+
setTimeout(() => {
|
|
1677
|
+
chip.textContent = chipLabel;
|
|
1678
|
+
chip.dataset.opening = "";
|
|
1679
|
+
}, wait);
|
|
1680
|
+
};
|
|
1668
1681
|
try {
|
|
1669
1682
|
const bridge = window._nativeBridge;
|
|
1670
1683
|
if (bridge?.openAttachment) {
|
|
@@ -1693,6 +1706,8 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
|
|
|
1693
1706
|
const m = `Couldn't open "${att.filename}": ${err?.message || err}`;
|
|
1694
1707
|
console.error(m);
|
|
1695
1708
|
window.dispatchEvent(new CustomEvent("mailx-alert", { detail: { message: m, key: "attachment-open" } }));
|
|
1709
|
+
} finally {
|
|
1710
|
+
restoreChip();
|
|
1696
1711
|
}
|
|
1697
1712
|
});
|
|
1698
1713
|
chip.draggable = true;
|
|
@@ -2507,6 +2522,13 @@ function rowKey(accountId, uid) {
|
|
|
2507
2522
|
return `${accountId}:${uid}`;
|
|
2508
2523
|
}
|
|
2509
2524
|
function focusRow(row, opts = {}) {
|
|
2525
|
+
const body = row.el.parentElement;
|
|
2526
|
+
if (!body?.classList.contains("multi-select-on")) {
|
|
2527
|
+
body?.querySelectorAll(".ml-row.selected").forEach((r) => {
|
|
2528
|
+
if (r !== row.el)
|
|
2529
|
+
r.classList.remove("selected");
|
|
2530
|
+
});
|
|
2531
|
+
}
|
|
2510
2532
|
if (focusedRow && focusedRow !== row)
|
|
2511
2533
|
focusedRow.setSelected(false);
|
|
2512
2534
|
row.setSelected(true);
|
|
@@ -2544,9 +2566,9 @@ function scrollFocusedIntoView() {
|
|
|
2544
2566
|
focusedRow.el.scrollIntoView({ block: "center" });
|
|
2545
2567
|
}
|
|
2546
2568
|
function releaseFocus() {
|
|
2547
|
-
if (focusedRow)
|
|
2548
|
-
focusedRow.setSelected(false);
|
|
2549
2569
|
focusedRow = null;
|
|
2570
|
+
const body = document.getElementById("ml-body");
|
|
2571
|
+
body?.querySelectorAll(".ml-row.selected").forEach((r) => r.classList.remove("selected"));
|
|
2550
2572
|
clearViewer();
|
|
2551
2573
|
document.dispatchEvent(new CustomEvent("mailx-focus-changed", { detail: null }));
|
|
2552
2574
|
}
|