@bobfrankston/rmfmail 1.2.126 → 1.2.128

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.
@@ -46,6 +46,7 @@ __export(api_client_exports, {
46
46
  deleteTask: () => deleteTask,
47
47
  drainStoreSync: () => drainStoreSync,
48
48
  emptyFolder: () => emptyFolder,
49
+ fetchImageAsDataUri: () => fetchImageAsDataUri,
49
50
  flagSenderOrDomain: () => flagSenderOrDomain,
50
51
  formatJsonc: () => formatJsonc,
51
52
  getAccounts: () => getAccounts,
@@ -648,6 +649,10 @@ function closeComposePopout(id) {
648
649
  const fn = ipc().closeComposePopout;
649
650
  return fn ? fn(id) : Promise.resolve({ ok: false });
650
651
  }
652
+ function fetchImageAsDataUri(url) {
653
+ const fn = ipc().fetchImageAsDataUri;
654
+ return fn ? fn(url) : Promise.resolve({ error: "no bridge" });
655
+ }
651
656
  async function popoutMainWindow(accountId, folderId, name) {
652
657
  const fn = ipc().popoutMainWindow;
653
658
  if (!fn)
@@ -8380,7 +8385,9 @@ async function openCompose(mode, overrideMsg, overrideAccountId) {
8380
8385
  const msg = current?.message;
8381
8386
  const titlePrefix = mode === "reply" ? "Reply" : mode === "replyAll" ? "Reply All" : mode === "forward" ? "Forward" : mode === "editAsNew" ? "Edit as new" : "Compose";
8382
8387
  const titleSubject = mode === "new" ? "" : msg?.subject || "";
8383
- const frame = showComposeOverlay(titleSubject ? `${titlePrefix}: ${titleSubject}` : titlePrefix);
8388
+ const composeTitle = titleSubject ? `${titlePrefix}: ${titleSubject}` : titlePrefix;
8389
+ const preferWindow = window.innerWidth > 768 && window.innerHeight > 600 && localStorage.getItem("mailx-compose-in-window") !== "0";
8390
+ let frame = preferWindow ? null : showComposeOverlay(composeTitle);
8384
8391
  const accounts = await accountsP;
8385
8392
  const accountId = mode === "new" ? currentAccountId3 || current?.accountId || accounts[0]?.id || "" : current?.accountId || currentAccountId3 || accounts[0]?.id || "";
8386
8393
  const rePrefix = /^(re|fwd?):\s*/i;
@@ -8514,6 +8521,17 @@ async function openCompose(mode, overrideMsg, overrideAccountId) {
8514
8521
  }
8515
8522
  if (loaded.length) init.attachments = loaded;
8516
8523
  }
8524
+ if (preferWindow && !frame) {
8525
+ try {
8526
+ const { popoutCompose: popoutCompose2 } = await Promise.resolve().then(() => (init_api_client(), api_client_exports));
8527
+ const r = await popoutCompose2(init);
8528
+ if (r?.ok) return;
8529
+ console.error("[compose] separate-window open failed \u2014 overlay fallback:", r?.reason);
8530
+ } catch (e) {
8531
+ console.error("[compose] separate-window open threw \u2014 overlay fallback:", e?.message || e);
8532
+ }
8533
+ frame = showComposeOverlay(composeTitle);
8534
+ }
8517
8535
  const initJson = JSON.stringify(init);
8518
8536
  try {
8519
8537
  sessionStorage.setItem("composeInit", initJson);
@@ -11695,6 +11713,15 @@ getSettings().then((s) => {
11695
11713
  if (optEditorQuill) optEditorQuill.checked = ed === "quill";
11696
11714
  if (optEditorTiptap) optEditorTiptap.checked = ed === "tiptap";
11697
11715
  if (optEditorTinymce) optEditorTinymce.checked = ed === "tinymce";
11716
+ const cwEl = document.getElementById("opt-compose-window");
11717
+ if (cwEl) {
11718
+ const inWindow = s.ui?.composeInWindow !== false;
11719
+ cwEl.checked = inWindow;
11720
+ try {
11721
+ localStorage.setItem("mailx-compose-in-window", inWindow ? "1" : "0");
11722
+ } catch {
11723
+ }
11724
+ }
11698
11725
  const fontEl = document.getElementById("opt-compose-font-size");
11699
11726
  if (fontEl) {
11700
11727
  const px = Number(s.ui?.composeFontSize);
@@ -11702,6 +11729,18 @@ getSettings().then((s) => {
11702
11729
  }
11703
11730
  }).catch(() => {
11704
11731
  });
11732
+ document.getElementById("opt-compose-window")?.addEventListener("change", (e) => {
11733
+ const on = e.target.checked;
11734
+ try {
11735
+ localStorage.setItem("mailx-compose-in-window", on ? "1" : "0");
11736
+ } catch {
11737
+ }
11738
+ getSettings().then((settings) => {
11739
+ settings.ui = { ...settings.ui, composeInWindow: on };
11740
+ saveSettings(settings);
11741
+ }).catch(() => {
11742
+ });
11743
+ });
11705
11744
  document.getElementById("opt-compose-font-size")?.addEventListener("change", (e) => {
11706
11745
  const el = e.target;
11707
11746
  const px = Number(el.value);