diff --git a/js/services/hashtagPreferencesService.js b/js/services/hashtagPreferencesService.js index 78951262..0f046c10 100644 --- a/js/services/hashtagPreferencesService.js +++ b/js/services/hashtagPreferencesService.js @@ -593,7 +593,11 @@ class HashtagPreferencesService { throw error; } - const signer = getActiveSigner(); + let signer = getActiveSigner(); + if (!signer) { + signer = await nostrClient.ensureActiveSignerForPubkey(targetPubkey); + } + if (!signer || typeof signer.signEvent !== "function") { const error = new Error("An active signer is required to publish preferences."); error.code = "hashtag-preferences-missing-signer"; diff --git a/js/subscriptions.js b/js/subscriptions.js index a7385d96..c243852f 100644 --- a/js/subscriptions.js +++ b/js/subscriptions.js @@ -590,7 +590,11 @@ class SubscriptionsManager { throw new Error("No pubkey => cannot publish subscription list."); } - const signer = getActiveSigner(); + let signer = getActiveSigner(); + if (!signer) { + signer = await nostrClient.ensureActiveSignerForPubkey(userPubkey); + } + if (!signer) { const error = new Error( "An active signer is required to update subscriptions." diff --git a/js/userBlocks.js b/js/userBlocks.js index 329cfe2c..5d2ea62b 100644 --- a/js/userBlocks.js +++ b/js/userBlocks.js @@ -1471,7 +1471,11 @@ class UserBlockListManager { onStatus?.({ status: "publishing" }); - const signer = getActiveSigner(); + let signer = getActiveSigner(); + if (!signer) { + signer = await nostrClient.ensureActiveSignerForPubkey(userPubkey); + } + if (!signer) { const err = new Error( "An active signer is required to update the block list."