@bobfrankston/rmfmail 1.2.81 → 1.2.82

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.js CHANGED
@@ -6,7 +6,7 @@ import { initFolderTree, refreshFolderTree, updateFolderCounts, setFolderSynced,
6
6
  import { initMessageList, loadMessages, loadUnifiedInbox, loadSearchResults, reloadCurrentFolder, clearSearchMode, getSelectedMessages, markBodiesCached, getCurrentFocused, releaseFocus, removeMessagesAndReconcile, setRowFlagged, scrollFocusedIntoView, refreshPriorityIndex, revealMessage, selectAllVisible, exitMultiSelect } from "./components/message-list.js";
7
7
  import { seenOf, flaggedOf, draftOf, setSeen, setFlagged } from "@bobfrankston/mailx-types";
8
8
  import { initTabs, setActiveView as setActiveTabView, openTab } from "./components/tabs.js";
9
- import { getCurrentMessage, initViewer, popOutCurrentMessage, popOutToWindow, printCurrentMessage, toggleFullscreenPreview, showPreviewBodyMenu, wrapHtmlBody } from "./components/message-viewer.js";
9
+ import { getCurrentMessage, initViewer, popOutCurrentMessage, printCurrentMessage, toggleFullscreenPreview, showPreviewBodyMenu, wrapHtmlBody } from "./components/message-viewer.js";
10
10
  import { connectWebSocket, onWsEvent, triggerSync, syncAccount, reauthenticate, getAccounts, getFolders, deleteMessage, deleteMessages, undeleteMessage, restartServer, getSyncPending, getVersion, getSettings, saveSettings, getAutocompleteSettings, saveAutocompleteSettings, repairAccounts, updateFlags, markAsSpamMessages, logClientEvent, sendMessage as apiSendMessage, subscribeStore, cancelServerSearch, installConsoleCapture, getAttachment } from "./lib/api-client.js";
11
11
  import * as messageState from "./lib/message-state.js";
12
12
  // FIRST THING. Captures every console.log/warn/error + window errors +
@@ -714,7 +714,6 @@ document.getElementById("btn-back")?.addEventListener("touchend", backToList);
714
714
  // once), mobile toggles `body.viewer-fullscreen` for full-screen reading.
715
715
  // Threshold and behavior live in popOutCurrentMessage.
716
716
  document.getElementById("mv-popout")?.addEventListener("click", () => popOutCurrentMessage());
717
- document.getElementById("mv-popout-window")?.addEventListener("click", () => popOutToWindow());
718
717
  document.getElementById("btn-print")?.addEventListener("click", () => printCurrentMessage());
719
718
  // Close folder panel when a folder is selected (narrow mode)
720
719
  // Also reset narrow navigation: show message list, hide viewer
@@ -5778,12 +5777,18 @@ document.addEventListener("mailx-popout-action", ((e) => {
5778
5777
  const { action, msg, accountId } = e.detail || {};
5779
5778
  if (!msg)
5780
5779
  return;
5781
- if (action === "reply" || action === "replyAll" || action === "forward") {
5780
+ if (action === "reply" || action === "replyAll" || action === "forward" || action === "editAsNew") {
5782
5781
  openCompose(action, msg, accountId);
5783
5782
  }
5784
5783
  else if (action === "delete") {
5785
5784
  deleteMessage(accountId, msg.uid).catch((err) => console.error(`[popout] delete failed: ${err?.message || err}`));
5786
5785
  }
5786
+ else if (action === "flag") {
5787
+ const wasFlagged = flaggedOf(msg);
5788
+ setFlagged(msg, !wasFlagged);
5789
+ updateFlags(accountId, msg.uid, msg.flags, msg.folderId).catch((err) => console.error(`[popout] flag failed: ${err?.message || err}`));
5790
+ setRowFlagged(accountId, msg.uid, !wasFlagged);
5791
+ }
5787
5792
  }));
5788
5793
  document.addEventListener("mailx-popout-message", (async (e) => {
5789
5794
  const { accountId, uid, folderId, subject } = e.detail || {};