@bobfrankston/rmfmail 1.1.158 → 1.1.159
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 +16 -6
- 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 +11 -0
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +11 -0
- 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-80408}/.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
|
|
@@ -9318,19 +9329,18 @@ function applyThreadFilter() {
|
|
|
9318
9329
|
return;
|
|
9319
9330
|
}
|
|
9320
9331
|
refreshing = true;
|
|
9321
|
-
|
|
9322
|
-
|
|
9323
|
-
|
|
9324
|
-
|
|
9332
|
+
reset();
|
|
9333
|
+
const statusSync = document.getElementById("status-sync");
|
|
9334
|
+
const prevColor = statusSync?.style.color || "";
|
|
9335
|
+
if (statusSync) statusSync.style.color = "var(--color-brand-dark, #2563eb)";
|
|
9325
9336
|
try {
|
|
9326
9337
|
const { triggerSync: triggerSync2 } = await Promise.resolve().then(() => (init_api_client(), api_client_exports));
|
|
9327
9338
|
await triggerSync2();
|
|
9328
9339
|
} catch (e) {
|
|
9329
9340
|
console.error("pull-to-refresh failed:", e?.message || e);
|
|
9330
9341
|
}
|
|
9342
|
+
if (statusSync) statusSync.style.color = prevColor;
|
|
9331
9343
|
refreshing = false;
|
|
9332
|
-
indicator.classList.remove("refreshing");
|
|
9333
|
-
reset();
|
|
9334
9344
|
};
|
|
9335
9345
|
mlBody.addEventListener("touchend", () => {
|
|
9336
9346
|
finish();
|