From 62307b57dc2ced219bb85a40b32839f583af50cc Mon Sep 17 00:00:00 2001 From: franzap <_@franzap.com> Date: Tue, 27 Jan 2026 14:59:00 -0300 Subject: [PATCH] Prevent from removing last relay, adjust bootstrap relay group --- lib/main.dart | 3 ++- lib/widgets/relay_management_card.dart | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 112284d..cf0cf6c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -219,7 +219,8 @@ final appInitializationProvider = FutureProvider((ref) async { ), defaultRelays: { 'default': {'wss://relay.zapstore.dev'}, - 'bootstrap': {'wss://purplepag.es', 'wss://relay.zapstore.dev'}, + 'bootstrap': {'wss://relay.zapstore.dev'}, + // TODO: add 'wss://purplepag.es' back when it's fixed 'AppCatalog': {'wss://relay.zapstore.dev'}, 'social': { 'wss://relay.damus.io', diff --git a/lib/widgets/relay_management_card.dart b/lib/widgets/relay_management_card.dart index 80efb7d..c0f8126 100644 --- a/lib/widgets/relay_management_card.dart +++ b/lib/widgets/relay_management_card.dart @@ -124,7 +124,17 @@ class RelayManagementCard extends HookConsumerWidget { void removeRelay(String relayUrl) { final currentRelays = pendingRelays.value ?? savedRelays; - pendingRelays.value = currentRelays.where((r) => r != relayUrl).toList(); + final newRelays = currentRelays.where((r) => r != relayUrl).toList(); + // App catalog relays can never be empty - show error if trying to remove last + if (newRelays.isEmpty) { + context.showError( + 'Cannot remove last relay', + description: 'App catalog relays cannot be empty. ' + 'Add another relay before removing this one.', + ); + return; + } + pendingRelays.value = newRelays; } Future applyChanges() async {