@bobfrankston/rmfmail 1.1.158 → 1.1.160
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.bundle.js +19 -7
- package/client/app.bundle.js.map +2 -2
- package/client/app.js +13 -7
- package/client/app.js.map +1 -1
- package/client/app.ts +11 -7
- package/client/components/message-viewer.js +22 -1
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +22 -1
- package/client/styles/components.css +4 -29
- package/package.json +1 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-37644 → node_modules.npmglobalize-stash-55716}/.package-lock.json +0 -0
package/client/app.bundle.js
CHANGED
|
@@ -2017,6 +2017,17 @@ ${csp}
|
|
|
2017
2017
|
document.addEventListener("mouseleave", function () {
|
|
2018
2018
|
if (lastHoveredHref) postLinkHover("", null);
|
|
2019
2019
|
}, true);
|
|
2020
|
+
// Touch dismissers \u2014 a tap on Android fires synthetic mouseover but
|
|
2021
|
+
// often skips the matching mouseout (no mouse-move to track), so the
|
|
2022
|
+
// URL preview can stick on top of the message body even after the
|
|
2023
|
+
// user has scrolled away (Bob 2026-05-26 "sticky overlay URL"). Any
|
|
2024
|
+
// touchstart / touchend / scroll anywhere in the iframe immediately
|
|
2025
|
+
// clears the tooltip.
|
|
2026
|
+
var clearHover = function () { if (lastHoveredHref) postLinkHover("", null); };
|
|
2027
|
+
document.addEventListener("touchstart", clearHover, { passive: true, capture: true });
|
|
2028
|
+
document.addEventListener("touchend", clearHover, { passive: true, capture: true });
|
|
2029
|
+
document.addEventListener("scroll", clearHover, { passive: true, capture: true });
|
|
2030
|
+
window.addEventListener("scroll", clearHover, { passive: true, capture: true });
|
|
2020
2031
|
// Note: iframe-level dblclick fullscreen toggle REMOVED \u2014 it hijacked
|
|
2021
2032
|
// word-selection (Bob 2026-05-11). Double-clicking text inside the
|
|
2022
2033
|
// preview now selects the word like any other browser surface; the
|
|
@@ -2116,8 +2127,10 @@ ${csp}
|
|
|
2116
2127
|
function popOutCurrentMessage() {
|
|
2117
2128
|
if (!currentMessage)
|
|
2118
2129
|
return;
|
|
2130
|
+
const isAndroid = window.mailxapi?.platform === "android";
|
|
2131
|
+
const isCoarse = !!window.matchMedia?.("(pointer: coarse)")?.matches;
|
|
2119
2132
|
const isNarrow = window.innerWidth <= 768;
|
|
2120
|
-
if (isNarrow) {
|
|
2133
|
+
if (isAndroid || isCoarse || isNarrow) {
|
|
2121
2134
|
document.body.classList.toggle("viewer-fullscreen");
|
|
2122
2135
|
return;
|
|
2123
2136
|
}
|
|
@@ -9318,19 +9331,18 @@ function applyThreadFilter() {
|
|
|
9318
9331
|
return;
|
|
9319
9332
|
}
|
|
9320
9333
|
refreshing = true;
|
|
9321
|
-
|
|
9322
|
-
|
|
9323
|
-
|
|
9324
|
-
|
|
9334
|
+
reset();
|
|
9335
|
+
const statusSync = document.getElementById("status-sync");
|
|
9336
|
+
const prevColor = statusSync?.style.color || "";
|
|
9337
|
+
if (statusSync) statusSync.style.color = "var(--color-brand-dark, #2563eb)";
|
|
9325
9338
|
try {
|
|
9326
9339
|
const { triggerSync: triggerSync2 } = await Promise.resolve().then(() => (init_api_client(), api_client_exports));
|
|
9327
9340
|
await triggerSync2();
|
|
9328
9341
|
} catch (e) {
|
|
9329
9342
|
console.error("pull-to-refresh failed:", e?.message || e);
|
|
9330
9343
|
}
|
|
9344
|
+
if (statusSync) statusSync.style.color = prevColor;
|
|
9331
9345
|
refreshing = false;
|
|
9332
|
-
indicator.classList.remove("refreshing");
|
|
9333
|
-
reset();
|
|
9334
9346
|
};
|
|
9335
9347
|
mlBody.addEventListener("touchend", () => {
|
|
9336
9348
|
finish();
|