mirror of
https://github.com/dergigi/boris.git
synced 2025-12-31 05:24:36 +01:00
fix: prevent double reconnection and add status checks after connect
- Track reconnected accounts to avoid double-connecting - Log signer status after open() and connect() to verify state - This should prevent the double reconnection issue - Will help diagnose if connection is being lost immediately
This commit is contained in:
24
src/App.tsx
24
src/App.tsx
@@ -222,6 +222,9 @@ function App() {
|
||||
const pool = new RelayPool()
|
||||
|
||||
// Reconnect bunker signers when active account changes
|
||||
// Keep track of which accounts we've already reconnected to avoid double-connecting
|
||||
const reconnectedAccounts = new Set<string>()
|
||||
|
||||
const bunkerReconnectSub = accounts.active$.subscribe(async (account) => {
|
||||
console.log('[bunker] Active account changed:', {
|
||||
hasAccount: !!account,
|
||||
@@ -231,6 +234,13 @@ function App() {
|
||||
|
||||
if (account && account.type === 'nostr-connect') {
|
||||
const nostrConnectAccount = account as Accounts.NostrConnectAccount<unknown>
|
||||
|
||||
// Skip if we've already reconnected this account
|
||||
if (reconnectedAccounts.has(account.id)) {
|
||||
console.log('[bunker] ⏭️ Already reconnected this account, skipping')
|
||||
return
|
||||
}
|
||||
|
||||
console.log('[bunker] Account detected. Status:', {
|
||||
listening: nostrConnectAccount.signer.listening,
|
||||
isConnected: nostrConnectAccount.signer.isConnected,
|
||||
@@ -242,7 +252,10 @@ function App() {
|
||||
if (!nostrConnectAccount.signer.listening) {
|
||||
console.log('[bunker] Opening signer subscription...')
|
||||
await nostrConnectAccount.signer.open()
|
||||
console.log('[bunker] ✅ Signer subscription opened')
|
||||
console.log('[bunker] ✅ Signer subscription opened, status:', {
|
||||
listening: nostrConnectAccount.signer.listening,
|
||||
isConnected: nostrConnectAccount.signer.isConnected
|
||||
})
|
||||
} else {
|
||||
console.log('[bunker] ✅ Signer already listening')
|
||||
}
|
||||
@@ -253,10 +266,17 @@ function App() {
|
||||
const permissions = getDefaultBunkerPermissions()
|
||||
console.log('[bunker] Permissions:', permissions)
|
||||
await nostrConnectAccount.signer.connect(undefined, permissions)
|
||||
console.log('[bunker] ✅ Reconnected successfully')
|
||||
console.log('[bunker] ✅ Reconnected successfully, status:', {
|
||||
listening: nostrConnectAccount.signer.listening,
|
||||
isConnected: nostrConnectAccount.signer.isConnected
|
||||
})
|
||||
} else {
|
||||
console.log('[bunker] ✅ Already connected')
|
||||
}
|
||||
|
||||
// Mark this account as reconnected
|
||||
reconnectedAccounts.add(account.id)
|
||||
console.log('[bunker] 🎉 Full reconnection complete')
|
||||
} catch (error) {
|
||||
console.error('[bunker] ❌ Failed to reconnect:', error)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user