11package to.bitkit.ui
22
3- import androidx.compose.animation.core.tween
4- import androidx.compose.animation.slideInHorizontally
5- import androidx.compose.animation.slideOutHorizontally
63import androidx.compose.runtime.Composable
74import androidx.compose.runtime.CompositionLocalProvider
85import androidx.compose.runtime.DisposableEffect
@@ -69,6 +66,10 @@ import to.bitkit.ui.settings.OrderDetailScreen
6966import to.bitkit.ui.settings.SettingsScreen
7067import to.bitkit.ui.settings.backups.BackupWalletScreen
7168import to.bitkit.ui.settings.backups.RestoreWalletScreen
69+ import to.bitkit.ui.utils.screenScaleIn
70+ import to.bitkit.ui.utils.screenScaleOut
71+ import to.bitkit.ui.utils.screenSlideIn
72+ import to.bitkit.ui.utils.screenSlideOut
7273import to.bitkit.utils.Logger
7374import to.bitkit.viewmodels.ActivityListViewModel
7475import to.bitkit.viewmodels.AppViewModel
@@ -323,7 +324,7 @@ fun ContentView(
323324 } else {
324325 navController.navigateToTransferSpendingAmount()
325326 }
326- },
327+ },
327328 onFund = {
328329 scope.launch {
329330 // TODO show receive sheet -> ReceiveAmount
@@ -367,7 +368,7 @@ private fun NavGraphBuilder.home(
367368 HomeScreen (
368369 walletViewModel = viewModel,
369370 appViewModel = appViewModel,
370- rootNavController = navController
371+ rootNavController = navController,
371372 )
372373 }
373374}
@@ -376,7 +377,12 @@ private fun NavGraphBuilder.settings(
376377 viewModel : WalletViewModel ,
377378 navController : NavHostController ,
378379) {
379- composable<Routes .Settings > {
380+ composable<Routes .Settings >(
381+ enterTransition = { screenSlideIn },
382+ exitTransition = { screenScaleOut },
383+ popEnterTransition = { screenScaleIn },
384+ popExitTransition = { screenSlideOut },
385+ ) {
380386 SettingsScreen (viewModel, navController)
381387 }
382388}
@@ -385,13 +391,21 @@ private fun NavGraphBuilder.nodeState(
385391 viewModel : WalletViewModel ,
386392 navController : NavHostController ,
387393) {
388- composable<Routes .NodeState > {
394+ composable<Routes .NodeState >(
395+ enterTransition = { screenSlideIn },
396+ exitTransition = { screenSlideOut },
397+ ) {
389398 NodeStateScreen (viewModel, navController)
390399 }
391400}
392401
393402private fun NavGraphBuilder.generalSettings (navController : NavHostController ) {
394- composable<Routes .GeneralSettings > {
403+ composable<Routes .GeneralSettings >(
404+ enterTransition = { screenSlideIn },
405+ exitTransition = { screenScaleOut },
406+ popEnterTransition = { screenScaleIn },
407+ popExitTransition = { screenSlideOut },
408+ ) {
395409 GeneralSettingsScreen (navController)
396410 }
397411}
@@ -400,7 +414,12 @@ private fun NavGraphBuilder.defaultUnitSettings(
400414 currencyViewModel : CurrencyViewModel ,
401415 navController : NavHostController ,
402416) {
403- composable<Routes .DefaultUnitSettings > {
417+ composable<Routes .DefaultUnitSettings >(
418+ enterTransition = { screenSlideIn },
419+ exitTransition = { screenScaleOut },
420+ popEnterTransition = { screenScaleIn },
421+ popExitTransition = { screenSlideOut },
422+ ) {
404423 DefaultUnitSettingsScreen (currencyViewModel, navController)
405424 }
406425}
@@ -409,39 +428,64 @@ private fun NavGraphBuilder.localCurrencySettings(
409428 currencyViewModel : CurrencyViewModel ,
410429 navController : NavHostController ,
411430) {
412- composable<Routes .LocalCurrencySettings > {
431+ composable<Routes .LocalCurrencySettings >(
432+ enterTransition = { screenSlideIn },
433+ exitTransition = { screenScaleOut },
434+ popEnterTransition = { screenScaleIn },
435+ popExitTransition = { screenSlideOut },
436+ ) {
413437 LocalCurrencySettingsScreen (currencyViewModel, navController)
414438 }
415439}
416440
417441private fun NavGraphBuilder.backupSettings (
418442 navController : NavHostController ,
419443) {
420- composable<Routes .BackupSettings > {
444+ composable<Routes .BackupSettings >(
445+ enterTransition = { screenSlideIn },
446+ exitTransition = { screenScaleOut },
447+ popEnterTransition = { screenScaleIn },
448+ popExitTransition = { screenSlideOut },
449+ ) {
421450 BackupSettingsScreen (navController)
422451 }
423452}
424453
425454private fun NavGraphBuilder.backupWalletSettings (
426455 navController : NavHostController ,
427456) {
428- composable<Routes .BackupWalletSettings > {
457+ composable<Routes .BackupWalletSettings >(
458+ enterTransition = { screenSlideIn },
459+ exitTransition = { screenScaleOut },
460+ popEnterTransition = { screenScaleIn },
461+ popExitTransition = { screenSlideOut },
462+ ) {
429463 BackupWalletScreen (navController)
430464 }
431465}
432466
433467private fun NavGraphBuilder.restoreWalletSettings (
434468 navController : NavHostController ,
435469) {
436- composable<Routes .RestoreWalletSettings > {
470+ composable<Routes .RestoreWalletSettings >(
471+ enterTransition = { screenSlideIn },
472+ exitTransition = { screenScaleOut },
473+ popEnterTransition = { screenScaleIn },
474+ popExitTransition = { screenSlideOut },
475+ ) {
437476 RestoreWalletScreen (navController)
438477 }
439478}
440479
441480private fun NavGraphBuilder.channelOrdersSettings (
442481 navController : NavHostController ,
443482) {
444- composable<Routes .ChannelOrdersSettings > {
483+ composable<Routes .ChannelOrdersSettings >(
484+ enterTransition = { screenSlideIn },
485+ exitTransition = { screenScaleOut },
486+ popEnterTransition = { screenScaleIn },
487+ popExitTransition = { screenSlideOut },
488+ ) {
445489 ChannelOrdersScreen (
446490 onBackClick = { navController.popBackStack() },
447491 onOrderItemClick = { navController.navigateToOrderDetail(it) },
@@ -453,7 +497,12 @@ private fun NavGraphBuilder.channelOrdersSettings(
453497private fun NavGraphBuilder.orderDetailSettings (
454498 navController : NavHostController ,
455499) {
456- composable<Routes .OrderDetail > { navBackEntry ->
500+ composable<Routes .OrderDetail >(
501+ enterTransition = { screenSlideIn },
502+ exitTransition = { screenScaleOut },
503+ popEnterTransition = { screenScaleIn },
504+ popExitTransition = { screenSlideOut },
505+ ) { navBackEntry ->
457506 OrderDetailScreen (
458507 orderItem = navBackEntry.toRoute(),
459508 onBackClick = { navController.popBackStack() },
@@ -464,7 +513,12 @@ private fun NavGraphBuilder.orderDetailSettings(
464513private fun NavGraphBuilder.cjitDetailSettings (
465514 navController : NavHostController ,
466515) {
467- composable<Routes .CjitDetail > { navBackEntry ->
516+ composable<Routes .CjitDetail >(
517+ enterTransition = { screenSlideIn },
518+ exitTransition = { screenScaleOut },
519+ popEnterTransition = { screenScaleIn },
520+ popExitTransition = { screenSlideOut },
521+ ) { navBackEntry ->
468522 CJitDetailScreen (
469523 cjitItem = navBackEntry.toRoute(),
470524 onBackClick = { navController.popBackStack() },
@@ -476,7 +530,12 @@ private fun NavGraphBuilder.lightning(
476530 viewModel : WalletViewModel ,
477531 navController : NavHostController ,
478532) {
479- composable<Routes .Lightning > {
533+ composable<Routes .Lightning >(
534+ enterTransition = { screenSlideIn },
535+ exitTransition = { screenScaleOut },
536+ popEnterTransition = { screenScaleIn },
537+ popExitTransition = { screenSlideOut },
538+ ) {
480539 LightningSettingsScreen (viewModel, navController)
481540 }
482541}
@@ -485,15 +544,25 @@ private fun NavGraphBuilder.devSettings(
485544 viewModel : WalletViewModel ,
486545 navController : NavHostController ,
487546) {
488- composable<Routes .DevSettings > {
547+ composable<Routes .DevSettings >(
548+ enterTransition = { screenSlideIn },
549+ exitTransition = { screenScaleOut },
550+ popEnterTransition = { screenScaleIn },
551+ popExitTransition = { screenSlideOut },
552+ ) {
489553 DevSettingsScreen (viewModel, navController)
490554 }
491555}
492556
493557private fun NavGraphBuilder.regtestSettings (
494558 navController : NavHostController ,
495559) {
496- composable<Routes .RegtestSettings > {
560+ composable<Routes .RegtestSettings >(
561+ enterTransition = { screenSlideIn },
562+ exitTransition = { screenScaleOut },
563+ popEnterTransition = { screenScaleIn },
564+ popExitTransition = { screenSlideOut },
565+ ) {
497566 val viewModel = hiltViewModel<BlocktankRegtestViewModel >()
498567 BlocktankRegtestScreen (viewModel, navController)
499568 }
@@ -503,7 +572,12 @@ private fun NavGraphBuilder.allActivity(
503572 viewModel : ActivityListViewModel ,
504573 navController : NavHostController ,
505574) {
506- composable<Routes .AllActivity > {
575+ composable<Routes .AllActivity >(
576+ enterTransition = { screenSlideIn },
577+ exitTransition = { screenScaleOut },
578+ popEnterTransition = { screenScaleIn },
579+ popExitTransition = { screenSlideOut },
580+ ) {
507581 AllActivityScreen (
508582 viewModel = viewModel,
509583 onBackCLick = { navController.popBackStack() },
@@ -516,7 +590,12 @@ private fun NavGraphBuilder.activityItem(
516590 viewModel : ActivityListViewModel ,
517591 navController : NavHostController ,
518592) {
519- composable<Routes .ActivityItem > { navBackEntry ->
593+ composable<Routes .ActivityItem >(
594+ enterTransition = { screenSlideIn },
595+ exitTransition = { screenScaleOut },
596+ popEnterTransition = { screenScaleIn },
597+ popExitTransition = { screenSlideOut },
598+ ) { navBackEntry ->
520599 ActivityItemScreen (
521600 viewModel = viewModel,
522601 activityItem = navBackEntry.toRoute(),
@@ -530,18 +609,8 @@ private fun NavGraphBuilder.qrScanner(
530609 navController : NavHostController ,
531610) {
532611 composable<Routes .QrScanner >(
533- enterTransition = {
534- slideInHorizontally(
535- initialOffsetX = { it },
536- animationSpec = tween(durationMillis = 300 )
537- )
538- },
539- exitTransition = {
540- slideOutHorizontally(
541- targetOffsetX = { it },
542- animationSpec = tween(durationMillis = 300 )
543- )
544- },
612+ enterTransition = { screenSlideIn },
613+ exitTransition = { screenSlideOut },
545614 ) {
546615 QrScanningScreen (navController = navController) { qrCode ->
547616 navController.popBackStack()
0 commit comments