@bobfrankston/rmfmail 1.1.83 → 1.1.84

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.ts CHANGED
@@ -1393,11 +1393,24 @@ document.getElementById("btn-tb-delete")?.addEventListener("click", deleteSelect
1393
1393
  document.getElementById("btn-tb-spam")?.addEventListener("click", spamSelectedMessages);
1394
1394
 
1395
1395
  // ── Flag toggle ──
1396
+ /** Sync the toolbar Flag button (glyph + gold colour) to the viewed
1397
+ * message's flagged state, so it mirrors the message-list row star. */
1398
+ function updateFlagButton(): void {
1399
+ const btn = document.getElementById("btn-flag");
1400
+ if (!btn) return;
1401
+ const sel = getCurrentFocused();
1402
+ const yes = !!sel && flaggedOf(sel);
1403
+ btn.classList.toggle("flagged", yes);
1404
+ btn.textContent = yes ? "\u2605" : "\u2606";
1405
+ }
1406
+ document.addEventListener("mailx-message-shown", updateFlagButton);
1407
+
1396
1408
  document.getElementById("btn-flag")?.addEventListener("click", async () => {
1397
1409
  const sel = getCurrentFocused();
1398
1410
  if (!sel) return;
1399
1411
  const wasFlagged = flaggedOf(sel);
1400
1412
  setFlagged(sel, !wasFlagged);
1413
+ updateFlagButton();
1401
1414
  try {
1402
1415
  await updateFlags(sel.accountId, sel.uid, sel.flags);
1403
1416
  messageState.updateMessageFlags(sel.accountId, sel.uid, sel.flags);
@@ -1407,6 +1420,7 @@ document.getElementById("btn-flag")?.addEventListener("click", async () => {
1407
1420
  } catch (e: unknown) {
1408
1421
  // Revert local state on failure so visual + data stay consistent.
1409
1422
  setFlagged(sel, wasFlagged);
1423
+ updateFlagButton();
1410
1424
  console.error(`Flag toggle failed: ${(e as Error).message}`);
1411
1425
  }
1412
1426
  });
@@ -78,6 +78,9 @@
78
78
  .tb-icon { font-size: 1.1em; }
79
79
  .tb-btn.syncing .tb-icon { animation: spin 1s linear infinite; }
80
80
  @keyframes spin { to { transform: rotate(360deg); } }
81
+ /* Viewer Flag button tracks the viewed message's flagged state — same
82
+ gold as the message-list row star (.ml-row.flagged .ml-flag). */
83
+ #btn-flag.flagged { color: oklch(0.70 0.18 60); }
81
84
  .app-version { font-size: var(--font-size-sm); color: var(--color-text); opacity: 0.7; }
82
85
 
83
86
  .tb-menu { position: relative; display: inline-block; }
package/npmchanges.md CHANGED
@@ -108,3 +108,11 @@ Message-list flag star enlarged from 0.9em to 1.45em, vertically
108
108
  centered, with a gold hover preview and a stronger solid-gold colour
109
109
  when flagged. Flag grid column widened 1.2em -> 1.7em to fit it.
110
110
 
111
+ ## v1.1.83 — 2026-05-18
112
+
113
+ Viewer flag button: use a star glyph, matching the list star
114
+
115
+ The toolbar Flag button showed a ⚑ while the message-list row uses
116
+ ★/☆ for the same flag state. Changed the toolbar glyph to ★ so the
117
+ two are visibly the same action.
118
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/rmfmail",
3
- "version": "1.1.83",
3
+ "version": "1.1.84",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",