@bobfrankston/rmfmail 1.2.127 → 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.
@@ -8385,7 +8385,9 @@ async function openCompose(mode, overrideMsg, overrideAccountId) {
8385
8385
  const msg = current?.message;
8386
8386
  const titlePrefix = mode === "reply" ? "Reply" : mode === "replyAll" ? "Reply All" : mode === "forward" ? "Forward" : mode === "editAsNew" ? "Edit as new" : "Compose";
8387
8387
  const titleSubject = mode === "new" ? "" : msg?.subject || "";
8388
- 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);
8389
8391
  const accounts = await accountsP;
8390
8392
  const accountId = mode === "new" ? currentAccountId3 || current?.accountId || accounts[0]?.id || "" : current?.accountId || currentAccountId3 || accounts[0]?.id || "";
8391
8393
  const rePrefix = /^(re|fwd?):\s*/i;
@@ -8519,6 +8521,17 @@ async function openCompose(mode, overrideMsg, overrideAccountId) {
8519
8521
  }
8520
8522
  if (loaded.length) init.attachments = loaded;
8521
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
+ }
8522
8535
  const initJson = JSON.stringify(init);
8523
8536
  try {
8524
8537
  sessionStorage.setItem("composeInit", initJson);
@@ -11700,6 +11713,15 @@ getSettings().then((s) => {
11700
11713
  if (optEditorQuill) optEditorQuill.checked = ed === "quill";
11701
11714
  if (optEditorTiptap) optEditorTiptap.checked = ed === "tiptap";
11702
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
+ }
11703
11725
  const fontEl = document.getElementById("opt-compose-font-size");
11704
11726
  if (fontEl) {
11705
11727
  const px = Number(s.ui?.composeFontSize);
@@ -11707,6 +11729,18 @@ getSettings().then((s) => {
11707
11729
  }
11708
11730
  }).catch(() => {
11709
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
+ });
11710
11744
  document.getElementById("opt-compose-font-size")?.addEventListener("change", (e) => {
11711
11745
  const el = e.target;
11712
11746
  const px = Number(el.value);