@bobfrankston/rmfmail 1.2.329 → 1.2.331
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/compose/compose.bundle.js +18 -1
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/compose/compose.html +3 -0
- package/client/compose/compose.js +33 -1
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +30 -1
- package/client/package.json +1 -1
- package/npmchanges.md +9 -0
- package/package.json +1 -1
- package/packages/mailx-service/index.d.ts.map +1 -1
- package/packages/mailx-service/index.js +8 -1
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-service/index.ts +7 -1
- package/packages/mailx-service/package.json +1 -1
- package/.commitmsg +0 -6
|
@@ -5664,6 +5664,17 @@ if (fromInput) {
|
|
|
5664
5664
|
openFromPicker();
|
|
5665
5665
|
});
|
|
5666
5666
|
fromInput.addEventListener("click", openFromPicker);
|
|
5667
|
+
const copyFromBtn = document.getElementById("btn-copy-from");
|
|
5668
|
+
copyFromBtn?.addEventListener("click", async () => {
|
|
5669
|
+
const value = getFromAddress();
|
|
5670
|
+
if (!value) return;
|
|
5671
|
+
try {
|
|
5672
|
+
await navigator.clipboard.writeText(value);
|
|
5673
|
+
showDraftStatus(`Copied From: ${value}`, false);
|
|
5674
|
+
} catch (e) {
|
|
5675
|
+
showDraftStatus(`Copy From failed: ${e?.message || e}`, true);
|
|
5676
|
+
}
|
|
5677
|
+
});
|
|
5667
5678
|
fromInput.addEventListener("blur", () => {
|
|
5668
5679
|
if (fromInput.value.trim() === "" && fromInput.dataset.prevFrom) {
|
|
5669
5680
|
fromInput.value = fromInput.dataset.prevFrom;
|
|
@@ -5817,7 +5828,9 @@ function getFromAccountId() {
|
|
|
5817
5828
|
return def?.id || "";
|
|
5818
5829
|
}
|
|
5819
5830
|
function getFromAddress() {
|
|
5820
|
-
|
|
5831
|
+
const live = fromInput.value.trim();
|
|
5832
|
+
if (live) return live;
|
|
5833
|
+
return (fromInput.dataset.prevFrom || "").trim();
|
|
5821
5834
|
}
|
|
5822
5835
|
function smartTab(current) {
|
|
5823
5836
|
const fields = [toInput, ccInput, bccInput, subjectInput];
|
|
@@ -6388,6 +6401,10 @@ var baselineSnapshot = "";
|
|
|
6388
6401
|
function getContentSnapshot() {
|
|
6389
6402
|
return JSON.stringify({
|
|
6390
6403
|
body: editor?.getHtml() || "",
|
|
6404
|
+
// 2026-09-15 — Claude Code (Fable 5.1). From was not part of the
|
|
6405
|
+
// snapshot, so picking a different identity never triggered a save;
|
|
6406
|
+
// the draft kept the old From until the body or subject changed.
|
|
6407
|
+
from: fromInput ? getFromAddress() : "",
|
|
6391
6408
|
to: toInput?.value || "",
|
|
6392
6409
|
cc: ccInput?.value || "",
|
|
6393
6410
|
bcc: bccInput?.value || "",
|