From 5e92e7f6138548810040d2df37d21f8471d0cc70 Mon Sep 17 00:00:00 2001 From: Kgothatso Ngako Date: Mon, 27 Jul 2026 00:52:22 +0200 Subject: [PATCH] Minor bug fixes --- .../mantra/compose/database/dao/NostrDao.kt | 1 + .../repository/DatabaseNostrRepository.kt | 8 ++++++-- .../mantra/compose/repository/NostrRepository.kt | 6 ++++-- .../ui/view/model/CreateProfileViewModel.kt | 16 +++++++++++----- .../compose/ui/view/model/NotaryViewModel.kt | 3 ++- .../ui/view/model/ShareProfileViewModel.kt | 2 +- 6 files changed, 25 insertions(+), 11 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/press/mantra/compose/database/dao/NostrDao.kt b/composeApp/src/commonMain/kotlin/press/mantra/compose/database/dao/NostrDao.kt index c9aa235b..b248d4fc 100644 --- a/composeApp/src/commonMain/kotlin/press/mantra/compose/database/dao/NostrDao.kt +++ b/composeApp/src/commonMain/kotlin/press/mantra/compose/database/dao/NostrDao.kt @@ -330,6 +330,7 @@ abstract class NostrDao( } nostrEvent.toProfile()?.let { profile -> + logger.d("Profile: $profile") database.profileDao().upsert(profile) } diff --git a/composeApp/src/commonMain/kotlin/press/mantra/compose/database/repository/DatabaseNostrRepository.kt b/composeApp/src/commonMain/kotlin/press/mantra/compose/database/repository/DatabaseNostrRepository.kt index 4acf7622..efa90774 100644 --- a/composeApp/src/commonMain/kotlin/press/mantra/compose/database/repository/DatabaseNostrRepository.kt +++ b/composeApp/src/commonMain/kotlin/press/mantra/compose/database/repository/DatabaseNostrRepository.kt @@ -111,8 +111,11 @@ class DatabaseNostrRepository( override suspend fun createNewProfile( publicKey: HexKey, name: String?, - biography: String? + biography: String?, + onCompletion: suspend () -> Unit ) { + logger.d("createNewProfile: $publicKey") + val profileEventTemplate = MetadataEvent.createNew( name = name, about = biography, @@ -202,6 +205,8 @@ class DatabaseNostrRepository( ) saveUnsignedNostrEvents(unsignedNostrEvents) + + onCompletion.invoke() } override suspend fun signInToProfile( @@ -356,7 +361,6 @@ class DatabaseNostrRepository( override suspend fun saveUnsignedNostrEvents(unsignedNostrEvents: List) { logger.d("saveUnsignedNostrEvents: $unsignedNostrEvents") - delay(2_100) database.unsignedNostrEventDao().insert( unsignedNostrEvents diff --git a/composeApp/src/commonMain/kotlin/press/mantra/compose/repository/NostrRepository.kt b/composeApp/src/commonMain/kotlin/press/mantra/compose/repository/NostrRepository.kt index 22026ecf..de5e58da 100644 --- a/composeApp/src/commonMain/kotlin/press/mantra/compose/repository/NostrRepository.kt +++ b/composeApp/src/commonMain/kotlin/press/mantra/compose/repository/NostrRepository.kt @@ -45,7 +45,8 @@ interface NostrRepository { suspend fun createNewProfile( publicKey: HexKey, name: String?, - biography: String? + biography: String?, + onCompletion: suspend () -> Unit ) suspend fun signInToProfile( @@ -190,7 +191,8 @@ interface NostrRepository { override suspend fun createNewProfile( publicKey: HexKey, name: String?, - biography: String? + biography: String?, + onCompletion: suspend () -> Unit ) { TODO("") } diff --git a/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/CreateProfileViewModel.kt b/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/CreateProfileViewModel.kt index fd076cc8..df62015d 100644 --- a/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/CreateProfileViewModel.kt +++ b/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/CreateProfileViewModel.kt @@ -24,7 +24,9 @@ import fr.acinq.phoenix.utils.MnemonicLanguage import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO +import kotlinx.coroutines.delay import kotlinx.coroutines.launch +import kotlin.time.Duration.Companion.seconds class CreateProfileViewModel( val initialCreateProfileUIState: CreateProfileUIState, @@ -106,15 +108,19 @@ class CreateProfileViewModel( val pubkey = localKeyManager.nostrPublicKey() + logger.d("Pubkey: $pubkey" ) nostrRepository.createNewProfile( pubkey, name = createProfileFormState.nameField.textFieldState.text.toString(), - biography = createProfileFormState.biographyField.textFieldState.text.toString() - ) + biography = createProfileFormState.biographyField.textFieldState.text.toString(), + onCompletion = { + logger.d("Created: $pubkey" ) - marmotRepository.publishMarmotKeyPackageBundle( - publicKey = pubkey, - nsecPassword = localKeyManager.nsecPassword() + marmotRepository.publishMarmotKeyPackageBundle( + publicKey = pubkey, + nsecPassword = localKeyManager.nsecPassword() + ) + } ) } } diff --git a/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/NotaryViewModel.kt b/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/NotaryViewModel.kt index 86a40937..388e0763 100644 --- a/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/NotaryViewModel.kt +++ b/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/NotaryViewModel.kt @@ -20,6 +20,7 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.launch +import press.mantra.compose.database.model.NostrEvent import kotlin.time.Instant class NotaryViewModel( @@ -99,7 +100,7 @@ class NotaryViewModel( nostrRepository.publishNostrEvent( unsignedNostrEvent, - _root_ide_package_.press.mantra.compose.database.model.NostrEvent( + NostrEvent( id = event.id, pubKey = event.pubKey, kind = event.kind, diff --git a/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/ShareProfileViewModel.kt b/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/ShareProfileViewModel.kt index d79938cb..11b65551 100755 --- a/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/ShareProfileViewModel.kt +++ b/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/ShareProfileViewModel.kt @@ -53,7 +53,7 @@ class ShareProfileViewModel( fun rebroadcastProfile(localNostrEvent: LocalNostrEvent) { viewModelScope.launch(Dispatchers.IO) { - // Rebroadcast + // Rebroadcast localNostrEvent and relays nostrRepository.rescheduleBroadcastNostrEventRequests( Relays.eventFinderRelaySet.map { BroadcastNostrEventRequest(