From 248b90749741e7ca0636d5c509fdf0df0976ede4 Mon Sep 17 00:00:00 2001 From: Kgothatso Ngako Date: Sun, 12 Jul 2026 17:24:08 +0200 Subject: [PATCH] Rename ChatRoomDetail files to ChatRoomMesssagingList --- .../compose/database/dao/MarmotOutboundDao.kt | 1 - ...reen.kt => ChatRoomMessagingListScreen.kt} | 36 +++++++++---------- .../ui/composable/navigation/TorchNavHost.kt | 4 +-- ...l.kt => ChatRoomMessagingListViewModel.kt} | 27 +++++++------- .../ui/view/state/ChatRoomDetailUIState.kt | 16 --------- .../state/ChatRoomMessagingListUIState.kt | 16 +++++++++ 6 files changed, 49 insertions(+), 51 deletions(-) rename composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/{ChatRoomDetailScreen.kt => ChatRoomMessagingListScreen.kt} (91%) rename composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/{ChatRoomDetailViewModel.kt => ChatRoomMessagingListViewModel.kt} (83%) delete mode 100755 composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/state/ChatRoomDetailUIState.kt create mode 100755 composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/state/ChatRoomMessagingListUIState.kt diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotOutboundDao.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotOutboundDao.kt index c2801df9..380c9938 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotOutboundDao.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotOutboundDao.kt @@ -302,7 +302,6 @@ abstract class MarmotOutboundDao( ) ) - // Save chatMessage for the invite... database.chatMessageDao().upsert( ChatMessage( diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomDetailScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomMessagingListScreen.kt similarity index 91% rename from composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomDetailScreen.kt rename to composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomMessagingListScreen.kt index 89b2d678..88a1e97c 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomDetailScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomMessagingListScreen.kt @@ -45,35 +45,35 @@ 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.ChatRoomDetailViewModel -import at.torch.compose.ui.view.state.ChatRoomDetailUIState +import at.torch.compose.ui.view.model.ChatRoomMessagingListViewModel +import at.torch.compose.ui.view.state.ChatRoomMessagingListUIState import com.vitorpamplona.quartz.nip01Core.core.HexKey @OptIn(ExperimentalMaterial3ExpressiveApi::class, ExperimentalMaterial3Api::class) @Composable -fun ChatRoomDetailScreen( +fun ChatRoomMessagingListScreen( activeUserPublicKey: HexKey, chatRoomId: String, relayHint: String?, - initialChatRoomDetailUIState: ChatRoomDetailUIState = ChatRoomDetailUIState.Loading, + initialChatRoomMessagingListUIState: ChatRoomMessagingListUIState = ChatRoomMessagingListUIState.Loading, nostrRepository: NostrRepository, chatRepository: ChatRepository, onNavigateToRouteAndPopUpInclusive: (Route) -> Unit, onNavigateToRoute: (Route) -> Unit, ) { - val chatRoomDetailViewModel: ChatRoomDetailViewModel = viewModel( - factory = ChatRoomDetailViewModel.factory( + val chatRoomMessagingListViewModel: ChatRoomMessagingListViewModel = viewModel( + factory = ChatRoomMessagingListViewModel.factory( chatRoomId = chatRoomId, relayHint = relayHint, - initialChatRoomDetailUIState = initialChatRoomDetailUIState, + initialChatRoomMessagingListUIState = initialChatRoomMessagingListUIState, nostrRepository = nostrRepository, chatRepository = chatRepository, activeUserPublicKey = activeUserPublicKey ) ) - when (val chatRoomDetailUIState = chatRoomDetailViewModel.chatRoomDetailUIState) { - is ChatRoomDetailUIState.Error -> { + when (val chatRoomDetailUIState = chatRoomMessagingListViewModel.chatRoomMessagingListUIState) { + is ChatRoomMessagingListUIState.Error -> { Column( modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally @@ -86,7 +86,7 @@ fun ChatRoomDetailScreen( ) } } - is ChatRoomDetailUIState.Loaded -> { + is ChatRoomMessagingListUIState.Loaded -> { val textFieldState = rememberTextFieldState() val chatRoomDetailMessageListViewModel: at.torch.compose.ui.view.model.ChatRoomDetailMessageListViewModel = viewModel( @@ -246,7 +246,7 @@ fun ChatRoomDetailScreen( } } } - ChatRoomDetailUIState.Loading -> { + ChatRoomMessagingListUIState.Loading -> { Column( modifier = Modifier.fillMaxWidth().padding( 20.dp @@ -279,7 +279,7 @@ fun ChatRoomDetailScreen( ) } } - ChatRoomDetailUIState.InitiatingNewChat -> { + ChatRoomMessagingListUIState.InitiatingNewChat -> { Column( modifier = Modifier.fillMaxWidth().padding( 20.dp @@ -306,7 +306,7 @@ fun ChatRoomDetailScreen( ) LaunchedEffect(true) { - chatRoomDetailViewModel.initiateNewChat( + chatRoomMessagingListViewModel.initiateNewChat( onNavigateToRouteAndPopUpInclusive ) } @@ -315,24 +315,24 @@ fun ChatRoomDetailScreen( } LaunchedEffect(true) { - if (initialChatRoomDetailUIState == ChatRoomDetailUIState.Loading) { - chatRoomDetailViewModel.initiateChatRoomDetail() + if (initialChatRoomMessagingListUIState == ChatRoomMessagingListUIState.Loading) { + chatRoomMessagingListViewModel.initiateChatRoomDetail() } } } @Preview @Composable -private fun ChatRoomDetailScreenPreview() { +private fun ChatRoomMessagingListScreenPreview() { TorchTheme { Surface( modifier = Modifier.fillMaxSize() ) { - ChatRoomDetailScreen( + ChatRoomMessagingListScreen( activeUserPublicKey = "", chatRoomId = "publicKey", relayHint = null, - initialChatRoomDetailUIState = ChatRoomDetailUIState.Loaded( + initialChatRoomMessagingListUIState = ChatRoomMessagingListUIState.Loaded( localChatRoom = LocalChatRoom( chatRoom = ChatRoom( id = "", diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/navigation/TorchNavHost.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/navigation/TorchNavHost.kt index 425d5da1..f55ac0bb 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/navigation/TorchNavHost.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/navigation/TorchNavHost.kt @@ -21,7 +21,7 @@ import at.torch.compose.managers.AuxDatabaseManager import at.torch.compose.ui.composable.ActiveProfileScreen import at.torch.compose.ui.composable.AddMemberToChatRoomConfirmationScreen import at.torch.compose.ui.composable.ChatRoomCreationScreen -import at.torch.compose.ui.composable.ChatRoomDetailScreen +import at.torch.compose.ui.composable.ChatRoomMessagingListScreen import at.torch.compose.ui.composable.CreateProfileScreen import at.torch.compose.ui.composable.HomeScreen import at.torch.compose.ui.composable.ImplementationPendingScreen @@ -557,7 +557,7 @@ fun TorchNavHost( composable { backStackEntry -> val route = backStackEntry.toRoute() - ChatRoomDetailScreen( + ChatRoomMessagingListScreen( activeUserPublicKey = route.activeUserPublicKey, chatRoomId = route.chatRoomId, relayHint = route.relayHint, diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/ChatRoomDetailViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/ChatRoomMessagingListViewModel.kt similarity index 83% rename from composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/ChatRoomDetailViewModel.kt rename to composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/ChatRoomMessagingListViewModel.kt index 945fef2a..c2d5ff15 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/ChatRoomDetailViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/ChatRoomMessagingListViewModel.kt @@ -13,24 +13,23 @@ 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.view.state.ChatRoomDetailUIState +import at.torch.compose.ui.view.state.ChatRoomMessagingListUIState import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip01Core.core.HexKey import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO -import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.launch -class ChatRoomDetailViewModel( +class ChatRoomMessagingListViewModel( val chatRoomId: String, val activeUserPublicKey: HexKey, val relayHint: String?, - initialChatRoomDetailUIState: ChatRoomDetailUIState, + initialChatRoomMessagingListUIState: ChatRoomMessagingListUIState, val nostrRepository: NostrRepository, val chatRepository: ChatRepository ): ViewModel() { - var chatRoomDetailUIState: ChatRoomDetailUIState by mutableStateOf(initialChatRoomDetailUIState) + var chatRoomMessagingListUIState: ChatRoomMessagingListUIState by mutableStateOf(initialChatRoomMessagingListUIState) private set @@ -45,11 +44,11 @@ class ChatRoomDetailViewModel( viewModelScope.launch(Dispatchers.IO) { val localChatRoom = chatRepository.getChatRoomByIdentifier(chatRoomId) - chatRoomDetailUIState = if (localChatRoom == null) { + chatRoomMessagingListUIState = if (localChatRoom == null) { // Initiate new chat... and navigate to new chat... - ChatRoomDetailUIState.InitiatingNewChat + ChatRoomMessagingListUIState.InitiatingNewChat } else { - ChatRoomDetailUIState.Loaded( + ChatRoomMessagingListUIState.Loaded( localChatRoom = localChatRoom ) } @@ -111,7 +110,7 @@ class ChatRoomDetailViewModel( val keyPackageEvent = chatRepository.getMarmotKeyPackageForPublicKey(chatRoomId) if (keyPackageEvent == null) { - chatRoomDetailUIState = ChatRoomDetailUIState.Error("Missing Key Package") // TODO: Introduce missing key package UI State... + chatRoomMessagingListUIState = ChatRoomMessagingListUIState.Error("Missing Key Package") // TODO: Introduce missing key package UI State... } else { // Create new chat and invite local try { @@ -129,13 +128,13 @@ class ChatRoomDetailViewModel( ) ) } catch (e: Throwable) { - chatRoomDetailUIState = ChatRoomDetailUIState.Error("Failed to create chat") + chatRoomMessagingListUIState = ChatRoomMessagingListUIState.Error("Failed to create chat") } } } else { - chatRoomDetailUIState = ChatRoomDetailUIState.Error("Couldn't find profile...") + chatRoomMessagingListUIState = ChatRoomMessagingListUIState.Error("Couldn't find profile...") } } } @@ -148,16 +147,16 @@ class ChatRoomDetailViewModel( activeUserPublicKey: HexKey, chatRoomId: String, relayHint: String?, - initialChatRoomDetailUIState: ChatRoomDetailUIState = ChatRoomDetailUIState.Loading, + initialChatRoomMessagingListUIState: ChatRoomMessagingListUIState = ChatRoomMessagingListUIState.Loading, nostrRepository: NostrRepository, chatRepository: ChatRepository ): ViewModelProvider.Factory = viewModelFactory { initializer { - ChatRoomDetailViewModel( + ChatRoomMessagingListViewModel( activeUserPublicKey = activeUserPublicKey, chatRoomId = chatRoomId, relayHint = relayHint, - initialChatRoomDetailUIState = initialChatRoomDetailUIState, + initialChatRoomMessagingListUIState = initialChatRoomMessagingListUIState, nostrRepository = nostrRepository, chatRepository = chatRepository ) diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/state/ChatRoomDetailUIState.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/state/ChatRoomDetailUIState.kt deleted file mode 100755 index 8e7a2863..00000000 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/state/ChatRoomDetailUIState.kt +++ /dev/null @@ -1,16 +0,0 @@ -package at.torch.compose.ui.view.state - -import at.torch.compose.database.model.intermdiate.LocalChatRoom - -sealed interface ChatRoomDetailUIState { - data class Loaded( - val localChatRoom: LocalChatRoom - ): ChatRoomDetailUIState - - data class Error( - val message: String - ): ChatRoomDetailUIState - data object Loading: ChatRoomDetailUIState - data object InitiatingNewChat: ChatRoomDetailUIState -} - diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/state/ChatRoomMessagingListUIState.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/state/ChatRoomMessagingListUIState.kt new file mode 100755 index 00000000..7590c93a --- /dev/null +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/state/ChatRoomMessagingListUIState.kt @@ -0,0 +1,16 @@ +package at.torch.compose.ui.view.state + +import at.torch.compose.database.model.intermdiate.LocalChatRoom + +sealed interface ChatRoomMessagingListUIState { + data class Loaded( + val localChatRoom: LocalChatRoom + ): ChatRoomMessagingListUIState + + data class Error( + val message: String + ): ChatRoomMessagingListUIState + data object Loading: ChatRoomMessagingListUIState + data object InitiatingNewChat: ChatRoomMessagingListUIState +} +