diff --git a/js/ui/profileModalController.js b/js/ui/profileModalController.js index 17bd5056..6c78764a 100644 --- a/js/ui/profileModalController.js +++ b/js/ui/profileModalController.js @@ -5212,6 +5212,15 @@ export class ProfileModalController { const error = detail?.error || detail?.failure || detail; const reason = detail?.context?.reason || ""; const errorCode = error?.code || ""; + const errorMessage = + typeof error === "string" + ? error + : typeof error?.message === "string" + ? error.message + : ""; + const requiresNip44Decryptor = + typeof errorMessage === "string" && + errorMessage.includes("Gift wrap events require a NIP-44 decryptor"); const isBenign = reason === "no-decryptors" || @@ -5231,6 +5240,21 @@ export class ProfileModalController { return; } + if (requiresNip44Decryptor) { + const nip44Message = + "NIP-17 direct messages require a NIP-44-capable signer or extension. Unlock or update your extension to continue."; + if (!this.directMessagesCache.length) { + this.setMessagesLoadingState("error", { + message: nip44Message, + }); + return; + } + + this.setMessagesAnnouncement(nip44Message); + this.updateMessagesReloadState(); + return; + } + if (!this.directMessagesCache.length) { this.setMessagesLoadingState("error", { message: "Unable to sync direct messages right now.",