@bobfrankston/rmfmail 1.2.211 → 1.2.213

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.
@@ -8338,8 +8338,10 @@ var alertText = document.getElementById("alert-text");
8338
8338
  var alertDismiss = document.getElementById("alert-dismiss");
8339
8339
  var dismissedAlerts = /* @__PURE__ */ new Set();
8340
8340
  var alertAutoDismissTimer = null;
8341
+ var dbReadOnlyLatched = false;
8341
8342
  function showAlert(message, key, opts) {
8342
8343
  if (key && dismissedAlerts.has(key)) return;
8344
+ if (dbReadOnlyLatched && key !== "db-readonly") return;
8343
8345
  if (alertBanner && alertText) {
8344
8346
  alertText.textContent = message;
8345
8347
  alertBanner.hidden = false;
@@ -8372,12 +8374,8 @@ function hideAlert(opts) {
8372
8374
  }
8373
8375
  }
8374
8376
  alertDismiss?.addEventListener("click", () => hideAlert({ force: true }));
8375
- function showRestartForConfigBanner() {
8377
+ function addRestartButton() {
8376
8378
  if (!alertBanner || !alertText) return;
8377
- const ts = (/* @__PURE__ */ new Date()).toLocaleTimeString([], { hour12: false });
8378
- alertText.textContent = `[${ts}] accounts.jsonc changed \u2014 restart to apply.`;
8379
- alertBanner.hidden = false;
8380
- alertBanner.dataset.key = "config-restart";
8381
8379
  const existing = alertBanner.querySelector("#alert-restart-btn");
8382
8380
  if (existing) return;
8383
8381
  const btn = document.createElement("button");
@@ -8402,6 +8400,14 @@ function showRestartForConfigBanner() {
8402
8400
  });
8403
8401
  alertText.after(btn);
8404
8402
  }
8403
+ function showRestartForConfigBanner() {
8404
+ if (!alertBanner || !alertText) return;
8405
+ const ts = (/* @__PURE__ */ new Date()).toLocaleTimeString([], { hour12: false });
8406
+ alertText.textContent = `[${ts}] accounts.jsonc changed \u2014 restart to apply.`;
8407
+ alertBanner.hidden = false;
8408
+ alertBanner.dataset.key = "config-restart";
8409
+ addRestartButton();
8410
+ }
8405
8411
  var folderTree = document.getElementById("folder-tree");
8406
8412
  var currentFolderSpecialUse = "";
8407
8413
  var folderTitleEl = document.getElementById("ml-folder-title");
@@ -12505,7 +12511,12 @@ versionPromise.then((d) => {
12505
12511
  el.textContent = text;
12506
12512
  if (tip) el.title = tip;
12507
12513
  }
12508
- if (d.settingsError) {
12514
+ if (d.dbWriteDenied) {
12515
+ if (alertBanner) alertBanner.style.background = "oklch(0.45 0.18 25)";
12516
+ dbReadOnlyLatched = true;
12517
+ showAlert("Database is READ-ONLY \u2014 nothing you do is being saved (\u2605, moves, new mail). Restart rmfmail.", "db-readonly", { sticky: true });
12518
+ addRestartButton();
12519
+ } else if (d.settingsError) {
12509
12520
  showAlert(d.settingsError, "settings-error");
12510
12521
  const banner = document.getElementById("alert-banner");
12511
12522
  if (banner && !banner.querySelector(".repair-btn")) {