diff --git a/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/composable/AddArtifactScreen.kt b/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/composable/AddArtifactScreen.kt index 048be0d1..38d68b94 100644 --- a/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/composable/AddArtifactScreen.kt +++ b/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/composable/AddArtifactScreen.kt @@ -60,6 +60,7 @@ import press.mantra.compose.ui.theme.TorchTheme import press.mantra.compose.ui.view.state.ChatRoomMessagingUIState import com.vitorpamplona.quartz.nip01Core.core.HexKey import press.mantra.compose.repository.MantraRepository +import press.mantra.compose.ui.composable.navigation.routes.ArtifactDetailRoute import press.mantra.compose.ui.composable.navigation.routes.ImplementationPendingRoute import press.mantra.compose.ui.view.model.AddArtifactViewModel import press.mantra.compose.ui.view.state.AddArtifactUIState @@ -141,9 +142,16 @@ fun AddArtifactScreen( dialectNameField = dialectNameFieldState, dialectCountryField = dialectCountryFieldState, dialectLanguageField = dialectLanguageFieldState, - onSuccess = { - onNavigateToRoute.invoke( - ImplementationPendingRoute("Add Artifact") + onSuccess = { artifactId -> + // Open the newly created artifact, removing this + // add screen from the back stack. + onNavigateToRouteAndPopUpInclusive.invoke( + ArtifactDetailRoute( + activeUserPublicKey = activeUserPublicKey, + artifactId = artifactId, + chatRoomId = chatRoomId, + relayHint = relayHint + ) ) }, onFailure = { diff --git a/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/AddArtifactViewModel.kt b/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/AddArtifactViewModel.kt index 1196ba0f..ce9277ad 100644 --- a/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/AddArtifactViewModel.kt +++ b/composeApp/src/commonMain/kotlin/press/mantra/compose/ui/view/model/AddArtifactViewModel.kt @@ -69,7 +69,7 @@ class AddArtifactViewModel( dialectLanguageField: TextFieldState, visibility: String = MantraRepository.DEFAULT_VISIBILITY, license: String = MantraRepository.DEFAULT_LICENSE, - onSuccess: () -> Unit, + onSuccess: (artifactId: String) -> Unit, onFailure: () -> Unit ) { val name = nameField.text.toString() @@ -132,7 +132,7 @@ class AddArtifactViewModel( dialectLanguageField.clearText() viewModelScope.launch(Dispatchers.Main) { - onSuccess.invoke() + onSuccess.invoke(marmotInnerEvent.id) } } else { viewModelScope.launch(Dispatchers.Main) {