From c726d8462917d3cf3f47a1caf30ef38c800839bd Mon Sep 17 00:00:00 2001 From: Kgothatso Ngako Date: Sun, 12 Jul 2026 23:26:29 +0200 Subject: [PATCH] Clean up code --- .../ui/composable/ChatRoomMessagingScreen.kt | 4 +-- .../torch/compose/ui/composable/HomeScreen.kt | 18 +---------- .../StartDirectMessageToNpubOrNip05Dialog.kt | 32 ++++++++++++++++--- 3 files changed, 30 insertions(+), 24 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomMessagingScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomMessagingScreen.kt index 6b62e37f..3254131f 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomMessagingScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomMessagingScreen.kt @@ -14,7 +14,6 @@ import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Mic import androidx.compose.material.icons.filled.MoreVert -import androidx.compose.material.icons.filled.PersonAdd import androidx.compose.material.icons.filled.Send import androidx.compose.material3.BottomAppBarDefaults import androidx.compose.material3.ExperimentalMaterial3Api @@ -44,7 +43,6 @@ import at.torch.compose.repository.ChatRepository import at.torch.compose.repository.NostrRepository import at.torch.compose.ui.composable.navigation.routes.ChatRoomDetailRoute import at.torch.compose.ui.composable.navigation.routes.Route -import at.torch.compose.ui.composable.navigation.routes.SearchMemberToAddToChatRoomRoute import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import at.torch.compose.ui.theme.TorchTheme import at.torch.compose.ui.view.model.ChatRoomMessagingViewModel @@ -289,10 +287,10 @@ fun ChatRoomMessagingScreen( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(20.dp) ) { - Spacer( modifier = Modifier.weight(1f) ) + Text( text = "Creating new chat.", style = MaterialTheme.typography.bodySmall, diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/HomeScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/HomeScreen.kt index d8a4faac..9eef0b9c 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/HomeScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/HomeScreen.kt @@ -4,22 +4,12 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.rememberPagerState -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.foundation.text.input.TextFieldLineLimits -import androidx.compose.foundation.text.input.rememberTextFieldState import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Add -import androidx.compose.material.icons.filled.Close import androidx.compose.material.icons.filled.Search -import androidx.compose.material.icons.filled.Start -import androidx.compose.material3.Card import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.ExtendedFloatingActionButton @@ -31,8 +21,6 @@ import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface import androidx.compose.material3.Tab import androidx.compose.material3.Text -import androidx.compose.material3.TextButton -import androidx.compose.material3.TextField import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.rememberModalBottomSheetState @@ -48,16 +36,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Dialog import androidx.lifecycle.viewmodel.compose.viewModel import at.torch.compose.database.model.NostrEvent import at.torch.compose.database.model.Profile import at.torch.compose.database.model.intermdiate.LocalProfileWithFollowing -import at.torch.compose.extensions.assureValidNpub import at.torch.compose.repository.ChatRepository import at.torch.compose.repository.NostrRepository import at.torch.compose.ui.composable.navigation.routes.ActiveProfileRoute -import at.torch.compose.ui.composable.navigation.routes.ImplementationPendingRoute import at.torch.compose.ui.composable.navigation.routes.Route import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import at.torch.compose.ui.composable.widgets.dialogs.NewChatBottomSheetDialog @@ -68,8 +53,6 @@ import at.torch.compose.ui.view.model.HomeViewModel import at.torch.compose.ui.view.state.HomeScreenUIState import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent -import fr.acinq.phoenix.utils.EmailLikeAddress -import fr.acinq.phoenix.utils.Parser import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class) @@ -261,6 +244,7 @@ fun HomeScreen( when { openNpubDialog.value -> { StartDirectMessageToNpubOrNip05Dialog( + activeUserPublicKey = activeUserPublicKey, scope = scope, toggleOpenDialogSetting = { openNpubDialog.value = false diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/dialogs/StartDirectMessageToNpubOrNip05Dialog.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/dialogs/StartDirectMessageToNpubOrNip05Dialog.kt index a24f8bfd..49baa7fc 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/dialogs/StartDirectMessageToNpubOrNip05Dialog.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/dialogs/StartDirectMessageToNpubOrNip05Dialog.kt @@ -26,14 +26,18 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog +import at.torch.compose.extensions.bech32ToHexOrNull +import at.torch.compose.ui.composable.navigation.routes.ChatRoomMessagingRoute import at.torch.compose.ui.composable.navigation.routes.ImplementationPendingRoute import at.torch.compose.ui.composable.navigation.routes.Route +import com.vitorpamplona.quartz.nip01Core.core.HexKey import fr.acinq.phoenix.utils.Parser import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch @Composable fun StartDirectMessageToNpubOrNip05Dialog( + activeUserPublicKey: HexKey, scope: CoroutineScope, toggleOpenDialogSetting: (Boolean) -> Unit, onNavigateToRoute: (Route) -> Unit @@ -101,11 +105,31 @@ fun StartDirectMessageToNpubOrNip05Dialog( scope.launch { toggleOpenDialogSetting.invoke(false) }.invokeOnCompletion { - onNavigateToRoute.invoke( - ImplementationPendingRoute( - "Direct Message to ${textFieldState.text}" + val input = textFieldState.text.toString() + + val emailLikeAddress = Parser.parseEmailLikeAddress(input) + + if (emailLikeAddress != null) { + // TODO: Get public Key from hex... + onNavigateToRoute.invoke( + ImplementationPendingRoute( + "Direct Message to ${textFieldState.text}" + ) ) - ) + } else { + val publicKey = input.bech32ToHexOrNull() + + if (publicKey != null) { + onNavigateToRoute.invoke( + ChatRoomMessagingRoute( + activeUserPublicKey = activeUserPublicKey, + chatRoomId = publicKey, + relayHint = null + ) + ) + } + } + } } ) {