Skip to content

Commit ee8c699

Browse files
committed
refactor: simplify navigation transitions across screens
1 parent 72ff94e commit ee8c699

File tree

10 files changed

+19
-72
lines changed

10 files changed

+19
-72
lines changed

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/ValkyriePlugin.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.composegears.leviathan.compose.inject
1414
import com.composegears.tiamat.TiamatExperimentalApi
1515
import com.composegears.tiamat.compose.Navigation
1616
import com.composegears.tiamat.compose.navigationNone
17+
import com.composegears.tiamat.compose.navigationSlideInOut
1718
import com.composegears.tiamat.compose.rememberNavController
1819
import com.composegears.tiamat.compose.replace
1920
import com.composegears.tiamat.navigation.NavController
@@ -105,6 +106,7 @@ fun ValkyriePlugin(
105106

106107
WebImportFlow,
107108
),
109+
contentTransformProvider = { isForward -> navigationSlideInOut(isForward) },
108110
)
109111
SnackbarHost(
110112
modifier = Modifier.align(Alignment.BottomCenter),

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/EditorSelectScreen.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import com.composegears.tiamat.compose.back
2323
import com.composegears.tiamat.compose.navController
2424
import com.composegears.tiamat.compose.navDestination
2525
import com.composegears.tiamat.compose.navigate
26-
import com.composegears.tiamat.compose.navigationSlideInOut
2726
import io.github.composegears.valkyrie.compose.core.layout.VerticalSpacer
2827
import io.github.composegears.valkyrie.compose.util.dim
2928
import io.github.composegears.valkyrie.ui.foundation.AppBarTitle
@@ -37,12 +36,11 @@ val EditorSelectScreen by navDestination<Unit> {
3736
val navController = navController()
3837

3938
EditorScreenUi(
40-
onBack = { navController.back(transition = navigationSlideInOut(false)) },
39+
onBack = navController::back,
4140
openEdit = { type ->
4241
navController.navigate(
4342
dest = EditScreen,
4443
navArgs = type,
45-
transition = navigationSlideInOut(true),
4644
)
4745
},
4846
)

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/edit/EditScreen.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import com.composegears.tiamat.compose.navArgs
1818
import com.composegears.tiamat.compose.navController
1919
import com.composegears.tiamat.compose.navDestination
2020
import com.composegears.tiamat.compose.navigate
21-
import com.composegears.tiamat.compose.navigationSlideInOut
2221
import com.composegears.tiamat.compose.saveableViewModel
2322
import io.github.composegears.valkyrie.ui.common.picker.PickerEvent
2423
import io.github.composegears.valkyrie.ui.foundation.compositionlocal.LocalProject
@@ -44,12 +43,9 @@ val EditScreen by navDestination<EditorType> {
4443

4544
EditScreenUi(
4645
state = state,
47-
onBack = { navController.back(transition = navigationSlideInOut(false)) },
46+
onBack = navController::back,
4847
openSettings = {
49-
navController.navigate(
50-
dest = SettingsScreen,
51-
transition = navigationSlideInOut(true),
52-
)
48+
navController.navigate(dest = SettingsScreen)
5349
},
5450
onPickerEvent = {
5551
viewModel.pickerEvent(project = project.current, events = it)

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/intro/IntroScreen.kt

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import androidx.compose.ui.unit.dp
2020
import com.composegears.tiamat.compose.navController
2121
import com.composegears.tiamat.compose.navDestination
2222
import com.composegears.tiamat.compose.navigate
23-
import com.composegears.tiamat.compose.navigationSlideInOut
2423
import com.composegears.tiamat.navigation.NavDestination
2524
import io.github.composegears.valkyrie.FeatureFlag.ICON_EDITOR_FEATURE_ENABLED
2625
import io.github.composegears.valkyrie.FeatureFlag.WEB_IMPORT_FEATURE_ENABLED
@@ -55,37 +54,14 @@ val IntroScreen: NavDestination<Unit> by navDestination {
5554

5655
IntroScreenUI(
5756
openSettings = {
58-
navController.navigate(
59-
dest = SettingsScreen,
60-
transition = navigationSlideInOut(true),
61-
)
57+
navController.navigate(dest = SettingsScreen)
6258
},
6359
onModeChange = {
6460
when (it) {
65-
Simple -> {
66-
navController.navigate(
67-
dest = SimpleModeSetupScreen,
68-
transition = navigationSlideInOut(true),
69-
)
70-
}
71-
IconPack -> {
72-
navController.navigate(
73-
dest = IconPackCreationScreen,
74-
transition = navigationSlideInOut(true),
75-
)
76-
}
77-
Editor -> {
78-
navController.navigate(
79-
dest = EditorSelectScreen,
80-
transition = navigationSlideInOut(true),
81-
)
82-
}
83-
WebImport -> {
84-
navController.navigate(
85-
dest = WebImportFlow,
86-
transition = navigationSlideInOut(true),
87-
)
88-
}
61+
Simple -> navController.navigate(dest = SimpleModeSetupScreen)
62+
IconPack -> navController.navigate(dest = IconPackCreationScreen)
63+
Editor -> navController.navigate(dest = EditorSelectScreen)
64+
WebImport -> navController.navigate(dest = WebImportFlow)
8965
Unspecified -> {}
9066
}
9167
},

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionScreen.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import com.composegears.tiamat.compose.navArgsOrNull
4141
import com.composegears.tiamat.compose.navController
4242
import com.composegears.tiamat.compose.navDestination
4343
import com.composegears.tiamat.compose.navigate
44-
import com.composegears.tiamat.compose.navigationSlideInOut
4544
import com.composegears.tiamat.compose.saveableViewModel
4645
import com.intellij.openapi.application.writeAction
4746
import com.intellij.openapi.vfs.VirtualFileManager
@@ -107,14 +106,9 @@ val IconPackConversionScreen by navDestination<PendingPathData> {
107106
IconPackConversionUi(
108107
state = state,
109108
previewType = settings.previewType,
110-
onBack = {
111-
navController.back(transition = navigationSlideInOut(false))
112-
},
109+
onBack = navController::back,
113110
openSettings = {
114-
navController.navigate(
115-
dest = SettingsScreen,
116-
transition = navigationSlideInOut(true),
117-
)
111+
navController.navigate(dest = SettingsScreen)
118112
},
119113
onPickEvent = viewModel::pickerEvent,
120114
updatePack = viewModel::updateIconPack,

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/IconPackCreationScreen.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import com.composegears.tiamat.compose.currentNavDestinationAsState
2424
import com.composegears.tiamat.compose.navArgsOrNull
2525
import com.composegears.tiamat.compose.navDestination
2626
import com.composegears.tiamat.compose.navigate
27-
import com.composegears.tiamat.compose.navigationSlideInOut
2827
import com.composegears.tiamat.compose.popToTop
2928
import com.composegears.tiamat.compose.rememberNavController
3029
import com.composegears.tiamat.navigation.NavController
@@ -54,7 +53,7 @@ val IconPackCreationScreen by navDestination<PendingPathData> {
5453
) {
5554
nestedNavController.back()
5655
} else {
57-
nestedNavController.parent?.back(transition = navigationSlideInOut(false))
56+
nestedNavController.parent?.back()
5857
}
5958
},
6059
)

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/conversion/SimpleConversionScreen.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import com.composegears.tiamat.compose.back
1818
import com.composegears.tiamat.compose.navController
1919
import com.composegears.tiamat.compose.navDestination
2020
import com.composegears.tiamat.compose.navigate
21-
import com.composegears.tiamat.compose.navigationSlideInOut
2221
import com.composegears.tiamat.compose.saveableViewModel
2322
import io.github.composegears.valkyrie.ui.domain.model.PreviewType
2423
import io.github.composegears.valkyrie.ui.foundation.rememberSnackbar
@@ -67,11 +66,8 @@ val SimpleConversionScreen by navDestination<Unit> {
6766
previewType = settings.previewType,
6867
onAction = {
6968
when (it) {
70-
is Back -> navController.back(transition = navigationSlideInOut(false))
71-
is OpenSettings -> navController.navigate(
72-
dest = SettingsScreen,
73-
transition = navigationSlideInOut(true),
74-
)
69+
is Back -> navController.back()
70+
is OpenSettings -> navController.navigate(dest = SettingsScreen)
7571
is ClosePreview -> viewModel.reset()
7672
is OpenFilePicker -> {
7773
scope.launch {

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/setup/SimpleModeSetupScreen.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import androidx.lifecycle.viewmodel.compose.viewModel
1717
import com.composegears.tiamat.compose.back
1818
import com.composegears.tiamat.compose.navController
1919
import com.composegears.tiamat.compose.navDestination
20-
import com.composegears.tiamat.compose.navigationSlideInOut
2120
import com.composegears.tiamat.compose.replace
2221
import io.github.composegears.valkyrie.compose.core.layout.VerticalSpacer
2322
import io.github.composegears.valkyrie.ui.domain.validation.ErrorCriteria
@@ -42,15 +41,10 @@ val SimpleModeSetupScreen by navDestination<Unit> {
4241
SimpleModeSetupScreenUI(
4342
state = state,
4443
onValueChange = viewModel::onValueChange,
45-
onBack = {
46-
navController.back(transition = navigationSlideInOut(false))
47-
},
44+
onBack = navController::back,
4845
onNext = {
4946
viewModel.saveSettings()
50-
navController.replace(
51-
dest = SimpleConversionScreen,
52-
transition = navigationSlideInOut(true),
53-
)
47+
navController.replace(dest = SimpleConversionScreen)
5448
},
5549
)
5650
}

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/SettingsScreen.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import com.composegears.tiamat.compose.back
1010
import com.composegears.tiamat.compose.currentNavDestinationAsState
1111
import com.composegears.tiamat.compose.navController
1212
import com.composegears.tiamat.compose.navDestination
13-
import com.composegears.tiamat.compose.navigationSlideInOut
1413
import com.composegears.tiamat.compose.rememberNavController
1514
import com.composegears.tiamat.compose.replace
1615
import com.composegears.tiamat.navigation.NavDestination
@@ -39,11 +38,7 @@ val SettingsScreen by navDestination<Unit> {
3938

4039
Column(modifier = Modifier.fillMaxSize()) {
4140
TopAppBar {
42-
BackAction(
43-
onBack = {
44-
navController.back(transition = navigationSlideInOut(false))
45-
},
46-
)
41+
BackAction(onBack = navController::back)
4742
AppBarTitle("Settings")
4843
}
4944

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/WebImportSelectorScreen.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import androidx.compose.ui.unit.dp
1515
import com.composegears.tiamat.compose.back
1616
import com.composegears.tiamat.compose.navController
1717
import com.composegears.tiamat.compose.navDestination
18-
import com.composegears.tiamat.compose.navigationSlideInOut
1918
import io.github.composegears.valkyrie.compose.core.layout.VerticalSpacer
2019
import io.github.composegears.valkyrie.compose.icons.ValkyrieIcons
2120
import io.github.composegears.valkyrie.compose.icons.colored.GoogleMaterialLogo
@@ -29,9 +28,7 @@ import io.github.composegears.valkyrie.util.stringResource
2928
val WebImportSelectorScreen by navDestination<Unit> {
3029
val navController = navController()
3130

32-
WebImportSelectorScreenUI(
33-
onBack = { navController.back(transition = navigationSlideInOut(false)) },
34-
)
31+
WebImportSelectorScreenUI(onBack = navController::back)
3532
}
3633

3734
@Composable

0 commit comments

Comments
 (0)