From 58ecf7f629af9cc4f1916cb49ac64ef33d850206 Mon Sep 17 00:00:00 2001 From: Yahor Urbanovich Date: Wed, 25 Sep 2024 12:10:43 +0300 Subject: [PATCH] Clear backstack after navigation to conversion screens --- .../conversion/IconPackConversionScreen.kt | 19 +------------------ .../conversion/IconPackConversionViewModel.kt | 2 +- .../existingpack/ExistingPackScreen.kt | 2 +- .../mode/iconpack/newpack/NewPackScreen.kt | 2 +- .../simple/setup/SimpleModeSetupScreen.kt | 2 +- 5 files changed, 5 insertions(+), 22 deletions(-) diff --git a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionScreen.kt b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionScreen.kt index 36c9c992..517fffd7 100644 --- a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionScreen.kt +++ b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionScreen.kt @@ -40,9 +40,6 @@ import com.composegears.tiamat.navDestination import com.composegears.tiamat.navigationSlideInOut import com.intellij.openapi.application.writeAction import com.intellij.openapi.vfs.VirtualFileManager -import io.github.composegears.valkyrie.generator.imagevector.OutputFormat -import io.github.composegears.valkyrie.settings.ValkyriesSettings -import io.github.composegears.valkyrie.ui.domain.model.Mode import io.github.composegears.valkyrie.ui.foundation.AppBarTitle import io.github.composegears.valkyrie.ui.foundation.BackAction import io.github.composegears.valkyrie.ui.foundation.ClearAction @@ -65,8 +62,6 @@ val IconPackConversionScreen by navDestination { val viewModel = koinTiamatViewModel() val state by viewModel.state.collectAsState() - val settings by viewModel.valkyriesSettings.collectAsState() - LaunchedEffect(Unit) { viewModel.events .onEach { @@ -89,7 +84,6 @@ val IconPackConversionScreen by navDestination { IconPackConversionUi( state = state, - settings = settings, onBack = { navController.back(transition = navigationSlideInOut(false)) }, @@ -112,7 +106,6 @@ val IconPackConversionScreen by navDestination { @Composable private fun IconPackConversionUi( state: IconPackConversionState, - settings: ValkyriesSettings, onBack: () -> Unit, openSettings: () -> Unit, onPickEvent: (PickerEvent) -> Unit, @@ -156,7 +149,7 @@ private fun IconPackConversionUi( if (state is BatchProcessing.IconPackCreationState) { ClearAction(onClear = onReset) } - AppBarTitle(title = "${settings.iconPackName} generation") + AppBarTitle(title = "IconPack generation") WeightSpacer() SettingsAction(openSettings = openSettings) } @@ -239,16 +232,6 @@ private fun LoadingStateUi(message: String) { private fun IconPackConversionUiPickeringPreview() = PreviewTheme { IconPackConversionUi( state = IconsPickering, - settings = ValkyriesSettings( - mode = Mode.IconPack, - iconPackName = "MyPack", - packageName = "", - iconPackDestination = "", - nestedPacks = emptyList(), - outputFormat = OutputFormat.BackingProperty, - generatePreview = true, - showImageVectorPreview = true, - ), onBack = {}, openSettings = {}, onPickEvent = {}, diff --git a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionViewModel.kt b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionViewModel.kt index 1e9c536b..cbd7b994 100644 --- a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionViewModel.kt +++ b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionViewModel.kt @@ -42,7 +42,7 @@ class IconPackConversionViewModel( private val _events = MutableSharedFlow() val events = _events.asSharedFlow() - val valkyriesSettings: StateFlow = inMemorySettings.settings + private val valkyriesSettings: StateFlow = inMemorySettings.settings fun pickerEvent(events: PickerEvent) { when (events) { diff --git a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ExistingPackScreen.kt b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ExistingPackScreen.kt index 8aa8c395..388dada4 100644 --- a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ExistingPackScreen.kt +++ b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ExistingPackScreen.kt @@ -39,7 +39,7 @@ val ExistingPackScreen by navDestination { .onEach { when (it) { is ExistingPackEvent.OnSettingsUpdated -> { - navController.parent?.navigate(IconPackConversionScreen) + navController.parent?.replace(IconPackConversionScreen) } is ExistingPackEvent.PreviewIconPackObject -> { navController.parent?.navigate( diff --git a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/NewPackScreen.kt b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/NewPackScreen.kt index bcdefb7b..6f0ad749 100644 --- a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/NewPackScreen.kt +++ b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/NewPackScreen.kt @@ -39,7 +39,7 @@ val NewPackScreen by navDestination { .onEach { when (it) { is NewPackEvent.OnSettingsUpdated -> { - navController.parent?.navigate(IconPackConversionScreen) + navController.parent?.replace(IconPackConversionScreen) } is NewPackEvent.PreviewIconPackObject -> { navController.parent?.navigate( diff --git a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/setup/SimpleModeSetupScreen.kt b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/setup/SimpleModeSetupScreen.kt index 5bfc71ab..f1560356 100644 --- a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/setup/SimpleModeSetupScreen.kt +++ b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/setup/SimpleModeSetupScreen.kt @@ -45,7 +45,7 @@ val SimpleModeSetupScreen by navDestination { }, onNext = { viewModel.saveSettings() - navController.navigate( + navController.replace( dest = SimpleConversionScreen, transition = navigationSlideInOut(true), )