From 36e9694c1bcc037ca24d49c0df19abdb9285ce6c Mon Sep 17 00:00:00 2001 From: padreug Date: Sun, 10 Aug 2025 18:19:18 +0200 Subject: [PATCH] feat: Enhance RelayHub component with subscription count details (still not working) - Update RelayHubStatus.vue to display both local and global subscription counts, improving user visibility into active subscriptions. - Add totalSubscriptionCount computed property in useRelayHub.ts to track the total number of subscriptions. - Implement totalSubscriptionCount getter in relayHub.ts to return the size of the subscriptions map. - Include debug logging in relayHub.ts for connected relay counts and statuses to aid in troubleshooting. --- src/components/RelayHubStatus.vue | 6 +++++- src/composables/useRelayHub.ts | 2 ++ src/lib/nostr/relayHub.ts | 19 +++++++++++++++++-- src/lib/utils/formatting.ts | 1 + test-formatting.html | 1 + 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/components/RelayHubStatus.vue b/src/components/RelayHubStatus.vue index d9a5126..42ea0fd 100644 --- a/src/components/RelayHubStatus.vue +++ b/src/components/RelayHubStatus.vue @@ -56,7 +56,10 @@

Active Subscriptions

-
{{ activeSubscriptions.size }}
+
+
Local: {{ activeSubscriptions.size }}
+
Global: {{ totalSubscriptionCount }}
+
@@ -72,6 +75,7 @@ const { activeSubscriptions, connectedRelayCount, totalRelayCount, + totalSubscriptionCount, connectionHealth, connect, disconnect, diff --git a/src/composables/useRelayHub.ts b/src/composables/useRelayHub.ts index 4e169e8..8c6ba4c 100644 --- a/src/composables/useRelayHub.ts +++ b/src/composables/useRelayHub.ts @@ -13,6 +13,7 @@ export function useRelayHub() { // Computed properties const connectedRelayCount = computed(() => relayHub.connectedRelayCount) const totalRelayCount = computed(() => relayHub.totalRelayCount) + const totalSubscriptionCount = computed(() => relayHub.totalSubscriptionCount) const connectionHealth = computed(() => { if (totalRelayCount.value === 0) return 0 return (connectedRelayCount.value / totalRelayCount.value) * 100 @@ -250,6 +251,7 @@ export function useRelayHub() { // Computed connectedRelayCount, totalRelayCount, + totalSubscriptionCount, connectionHealth, // Methods diff --git a/src/lib/nostr/relayHub.ts b/src/lib/nostr/relayHub.ts index 04db0a2..ca19497 100644 --- a/src/lib/nostr/relayHub.ts +++ b/src/lib/nostr/relayHub.ts @@ -85,19 +85,34 @@ export class RelayHub extends EventEmitter { } get connectedRelayCount(): number { - return this.connectedRelays.size + // Return the actual size of connectedRelays map + const count = this.connectedRelays.size + console.log('🔍 connectedRelayCount getter called, returning:', count) + return count } get totalRelayCount(): number { return this.relayConfigs.size } + get totalSubscriptionCount(): number { + return this.subscriptions.size + } + get relayStatuses(): RelayStatus[] { + console.log('🔍 relayStatuses getter called') + console.log('🔍 relayConfigs size:', this.relayConfigs.size) + console.log('🔍 connectedRelays size:', this.connectedRelays.size) + console.log('🔍 connectedRelays keys:', Array.from(this.connectedRelays.keys())) + return Array.from(this.relayConfigs.values()).map(config => { const relay = this.connectedRelays.get(config.url) + const isConnected = !!relay + console.log(`🔍 Relay ${config.url}: connected=${isConnected}, relay=${relay ? 'exists' : 'null'}`) + return { url: config.url, - connected: !!relay, + connected: isConnected, lastSeen: relay ? Date.now() : 0, error: relay ? undefined : 'Not connected', latency: relay ? 0 : undefined // TODO: Implement actual latency measurement diff --git a/src/lib/utils/formatting.ts b/src/lib/utils/formatting.ts index a61b999..27fcb0b 100644 --- a/src/lib/utils/formatting.ts +++ b/src/lib/utils/formatting.ts @@ -78,3 +78,4 @@ export function formatWalletBalance(balanceMsat: number, locale: string = 'en-US } return formatMsats(balanceMsat, locale) } + diff --git a/test-formatting.html b/test-formatting.html index 72d6829..9fe7622 100644 --- a/test-formatting.html +++ b/test-formatting.html @@ -296,3 +296,4 @@ +