@bobfrankston/rmfmail 1.1.194 → 1.1.196

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.
Files changed (32) hide show
  1. package/client/android-bootstrap.bundle.js +6 -4
  2. package/client/android-bootstrap.bundle.js.map +2 -2
  3. package/client/app.bundle.js +14 -1
  4. package/client/app.bundle.js.map +2 -2
  5. package/client/app.js +24 -4
  6. package/client/app.js.map +1 -1
  7. package/client/app.ts +23 -4
  8. package/package.json +3 -3
  9. package/packages/mailx-imap/index.js +4 -4
  10. package/packages/mailx-imap/index.js.map +1 -1
  11. package/packages/mailx-imap/index.ts +4 -4
  12. package/packages/mailx-imap/package-lock.json +2 -2
  13. package/packages/mailx-imap/package.json +1 -1
  14. package/packages/mailx-store/db.d.ts +11 -3
  15. package/packages/mailx-store/db.d.ts.map +1 -1
  16. package/packages/mailx-store/db.js +48 -6
  17. package/packages/mailx-store/db.js.map +1 -1
  18. package/packages/mailx-store/db.ts +51 -9
  19. package/packages/mailx-store/package.json +1 -1
  20. package/packages/mailx-store-web/android-bootstrap.js +2 -2
  21. package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
  22. package/packages/mailx-store-web/android-bootstrap.ts +2 -2
  23. package/packages/mailx-store-web/db.d.ts +3 -1
  24. package/packages/mailx-store-web/db.d.ts.map +1 -1
  25. package/packages/mailx-store-web/db.js +4 -2
  26. package/packages/mailx-store-web/db.js.map +1 -1
  27. package/packages/mailx-store-web/db.ts +5 -3
  28. package/packages/mailx-store-web/package.json +1 -1
  29. package/packages/mailx-store-web/sync-manager.js +1 -1
  30. package/packages/mailx-store-web/sync-manager.js.map +1 -1
  31. package/packages/mailx-store-web/sync-manager.ts +1 -1
  32. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-73948 → node_modules.npmglobalize-stash-59976}/.package-lock.json +0 -0
package/client/app.js CHANGED
@@ -161,8 +161,8 @@ function updateBadge(count) {
161
161
  const dataUrl = canvas.toDataURL("image/png");
162
162
  link.href = dataUrl;
163
163
  // Also push to the Windows taskbar overlay via msger's IPC helper —
164
- // no-op on Linux/Mac. For count=0, render a dedicated "no-overlay"
165
- // icon that's all-transparent so the base icon shows cleanly.
164
+ // no-op on Linux/Mac. For count=0, clear the overlay so the base icon
165
+ // shows cleanly.
166
166
  try {
167
167
  // The injected host bridge is `window.mailxapi`, NOT `window.msgapi`.
168
168
  // The old `msgapi` reference was always undefined, so the taskbar
@@ -172,8 +172,28 @@ function updateBadge(count) {
172
172
  const hostApi = window.mailxapi;
173
173
  if (hostApi?.setTaskbarOverlay) {
174
174
  if (count > 0) {
175
- // strip "data:image/png;base64," prefix base64 only
176
- const b64 = dataUrl.split(",")[1] || "";
175
+ // BADGE-ONLY overlay. SetOverlayIcon composites the supplied
176
+ // icon onto the bottom-right corner of the taskbar button —
177
+ // the base envelope icon is already there. Sending the full
178
+ // envelope+badge canvas (favicon) drew a SECOND tiny envelope
179
+ // in the corner on top of the big one (Bob 2026-05-29). Render
180
+ // just the red count pill on a transparent field so only the
181
+ // number is overlaid. Filled circle spans most of the 32×32 so
182
+ // it stays legible after the corner downscale.
183
+ const bc = document.createElement("canvas");
184
+ bc.width = 32;
185
+ bc.height = 32;
186
+ const bx = bc.getContext("2d");
187
+ bx.fillStyle = "#e33";
188
+ bx.beginPath();
189
+ bx.arc(16, 16, 15, 0, Math.PI * 2);
190
+ bx.fill();
191
+ bx.fillStyle = "#fff";
192
+ bx.font = "bold 20px sans-serif";
193
+ bx.textAlign = "center";
194
+ bx.textBaseline = "middle";
195
+ bx.fillText(count > 99 ? "99+" : String(count), 16, 17);
196
+ const b64 = bc.toDataURL("image/png").split(",")[1] || "";
177
197
  hostApi.setTaskbarOverlay(b64, `${count} unread`);
178
198
  }
179
199
  else {