Add wrappers for NavGraphBuilder.composable that supply transitions (#453)

This commit is contained in:
Brian Yencho 2023-12-29 10:21:21 -06:00 committed by Álison Fernandes
parent 12000b2746
commit 0f7a09dd96
24 changed files with 149 additions and 161 deletions

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.auth.feature.createaccount
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
private const val CREATE_ACCOUNT_ROUTE = "create_account"
@ -22,12 +21,8 @@ fun NavGraphBuilder.createAccountDestination(
onNavigateBack: () -> Unit,
onNavigateToLogin: (emailAddress: String, captchaToken: String) -> Unit,
) {
composable(
composableWithSlideTransitions(
route = CREATE_ACCOUNT_ROUTE,
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.slideDown,
popEnterTransition = TransitionProviders.Enter.slideUp,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
CreateAccountScreen(
onNavigateBack = onNavigateBack,

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.auth.feature.enterprisesignon
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
private const val ENTERPRISE_SIGN_ON_ROUTE = "enterprise_sign_on"
@ -21,12 +20,8 @@ fun NavController.navigateToEnterpriseSignOn(navOptions: NavOptions? = null) {
fun NavGraphBuilder.enterpriseSignOnDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithSlideTransitions(
route = ENTERPRISE_SIGN_ON_ROUTE,
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.stay,
popEnterTransition = TransitionProviders.Enter.stay,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
EnterpriseSignOnScreen(
onNavigateBack = onNavigateBack,

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.auth.feature.environment
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
private const val ENVIRONMENT_ROUTE = "environment"
@ -14,12 +13,8 @@ private const val ENVIRONMENT_ROUTE = "environment"
fun NavGraphBuilder.environmentDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithSlideTransitions(
route = ENVIRONMENT_ROUTE,
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.slideDown,
popEnterTransition = TransitionProviders.Enter.slideUp,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
EnvironmentScreen(onNavigateBack = onNavigateBack)
}

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.auth.feature.landing
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithStayTransitions
const val LANDING_ROUTE: String = "landing"
@ -23,12 +22,8 @@ fun NavGraphBuilder.landingDestination(
onNavigateToLogin: (emailAddress: String) -> Unit,
onNavigateToEnvironment: () -> Unit,
) {
composable(
composableWithStayTransitions(
route = LANDING_ROUTE,
enterTransition = TransitionProviders.Enter.stay,
exitTransition = TransitionProviders.Exit.stay,
popEnterTransition = TransitionProviders.Enter.stay,
popExitTransition = TransitionProviders.Exit.stay,
) {
LandingScreen(
onNavigateToCreateAccount = onNavigateToCreateAccount,

View file

@ -5,10 +5,9 @@ import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import com.x8bit.bitwarden.data.platform.annotation.OmitFromCoverage
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
private const val EMAIL_ADDRESS: String = "email_address"
private const val CAPTCHA_TOKEN = "captcha_token"
@ -47,7 +46,7 @@ fun NavGraphBuilder.loginDestination(
onNavigateToEnterpriseSignOn: () -> Unit,
onNavigateToLoginWithDevice: () -> Unit,
) {
composable(
composableWithSlideTransitions(
route = LOGIN_ROUTE,
arguments = listOf(
navArgument(EMAIL_ADDRESS) { type = NavType.StringType },
@ -56,10 +55,6 @@ fun NavGraphBuilder.loginDestination(
nullable = true
},
),
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.stay,
popEnterTransition = TransitionProviders.Enter.stay,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
LoginScreen(
onNavigateBack = onNavigateBack,

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.auth.feature.loginwithdevice
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
private const val LOGIN_WITH_DEVICE_ROUTE = "login_with_device"
@ -21,12 +20,8 @@ fun NavController.navigateToLoginWithDevice(navOptions: NavOptions? = null) {
fun NavGraphBuilder.loginWithDeviceDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithSlideTransitions(
route = LOGIN_WITH_DEVICE_ROUTE,
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.stay,
popEnterTransition = TransitionProviders.Enter.stay,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
LoginWithDeviceScreen(
onNavigateBack = onNavigateBack,

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.auth.feature.vaultunlock
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
const val VAULT_UNLOCK_ROUTE: String = "vault_unlock"
@ -21,12 +20,8 @@ fun NavController.navigateToVaultUnlock(
* Add the Vault Unlock screen to the nav graph.
*/
fun NavGraphBuilder.vaultUnlockDestination() {
composable(
composableWithSlideTransitions(
route = VAULT_UNLOCK_ROUTE,
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.slideDown,
popEnterTransition = TransitionProviders.Enter.slideUp,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
VaultUnlockScreen()
}

View file

@ -0,0 +1,103 @@
package com.x8bit.bitwarden.ui.platform.base.util
import androidx.compose.animation.AnimatedContentScope
import androidx.compose.runtime.Composable
import androidx.navigation.NamedNavArgument
import androidx.navigation.NavBackStackEntry
import androidx.navigation.NavDeepLink
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.data.platform.annotation.OmitFromCoverage
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
/**
* A wrapper around [NavGraphBuilder.composable] that supplies slide up/down transitions.
*/
@OmitFromCoverage
fun NavGraphBuilder.composableWithSlideTransitions(
route: String,
arguments: List<NamedNavArgument> = emptyList(),
deepLinks: List<NavDeepLink> = emptyList(),
content: @Composable AnimatedContentScope.(NavBackStackEntry) -> Unit,
) {
this.composable(
route = route,
arguments = arguments,
deepLinks = deepLinks,
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.stay,
popEnterTransition = TransitionProviders.Enter.stay,
popExitTransition = TransitionProviders.Exit.slideDown,
content = content,
)
}
/**
* A wrapper around [NavGraphBuilder.composable] that supplies "stay" transitions.
*/
@OmitFromCoverage
fun NavGraphBuilder.composableWithStayTransitions(
route: String,
arguments: List<NamedNavArgument> = emptyList(),
deepLinks: List<NavDeepLink> = emptyList(),
content: @Composable AnimatedContentScope.(NavBackStackEntry) -> Unit,
) {
this.composable(
route = route,
arguments = arguments,
deepLinks = deepLinks,
enterTransition = TransitionProviders.Enter.stay,
exitTransition = TransitionProviders.Exit.stay,
popEnterTransition = TransitionProviders.Enter.stay,
popExitTransition = TransitionProviders.Exit.stay,
content = content,
)
}
/**
* A wrapper around [NavGraphBuilder.composable] that supplies push transitions.
*
* This is suitable for screens deeper within a hierarchy that uses push transitions; the root
* screen of such a hierarchy should use [composableWithRootPushTransitions].
*/
@OmitFromCoverage
fun NavGraphBuilder.composableWithPushTransitions(
route: String,
arguments: List<NamedNavArgument> = emptyList(),
deepLinks: List<NavDeepLink> = emptyList(),
content: @Composable AnimatedContentScope.(NavBackStackEntry) -> Unit,
) {
this.composable(
route = route,
arguments = arguments,
deepLinks = deepLinks,
enterTransition = TransitionProviders.Enter.pushLeft,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushLeft,
popExitTransition = TransitionProviders.Exit.pushRight,
content = content,
)
}
/**
* A wrapper around [NavGraphBuilder.composable] that supplies push transitions to the root screen
* in a nested graph that uses push transitions.
*/
@OmitFromCoverage
fun NavGraphBuilder.composableWithRootPushTransitions(
route: String,
arguments: List<NamedNavArgument> = emptyList(),
deepLinks: List<NavDeepLink> = emptyList(),
content: @Composable AnimatedContentScope.(NavBackStackEntry) -> Unit,
) {
this.composable(
route = route,
arguments = arguments,
deepLinks = deepLinks,
enterTransition = TransitionProviders.Enter.stay,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushRight,
popExitTransition = TransitionProviders.Exit.fadeOut,
content = content,
)
}

View file

@ -3,8 +3,8 @@ package com.x8bit.bitwarden.ui.platform.feature.settings
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import androidx.navigation.navigation
import com.x8bit.bitwarden.ui.platform.base.util.composableWithRootPushTransitions
import com.x8bit.bitwarden.ui.platform.feature.settings.about.aboutDestination
import com.x8bit.bitwarden.ui.platform.feature.settings.about.navigateToAbout
import com.x8bit.bitwarden.ui.platform.feature.settings.accountsecurity.accountSecurityDestination
@ -17,7 +17,6 @@ import com.x8bit.bitwarden.ui.platform.feature.settings.other.navigateToOther
import com.x8bit.bitwarden.ui.platform.feature.settings.other.otherDestination
import com.x8bit.bitwarden.ui.platform.feature.settings.vault.navigateToVaultSettings
import com.x8bit.bitwarden.ui.platform.feature.settings.vault.vaultSettingsDestination
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
const val SETTINGS_GRAPH_ROUTE: String = "settings_graph"
private const val SETTINGS_ROUTE: String = "settings"
@ -33,12 +32,8 @@ fun NavGraphBuilder.settingsGraph(
startDestination = SETTINGS_ROUTE,
route = SETTINGS_GRAPH_ROUTE,
) {
composable(
composableWithRootPushTransitions(
route = SETTINGS_ROUTE,
enterTransition = TransitionProviders.Enter.stay,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushRight,
popExitTransition = TransitionProviders.Exit.fadeOut,
) {
SettingsScreen(
onNavigateToAbout = { navController.navigateToAbout() },

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.platform.feature.settings.about
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithPushTransitions
private const val ABOUT_ROUTE = "settings_about"
@ -14,12 +13,8 @@ private const val ABOUT_ROUTE = "settings_about"
fun NavGraphBuilder.aboutDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithPushTransitions(
route = ABOUT_ROUTE,
enterTransition = TransitionProviders.Enter.pushLeft,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushLeft,
popExitTransition = TransitionProviders.Exit.pushRight,
) {
AboutScreen(onNavigateBack = onNavigateBack)
}

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.platform.feature.settings.accountsecurity
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithPushTransitions
private const val ACCOUNT_SECURITY_ROUTE = "settings_account_security"
@ -15,12 +14,8 @@ fun NavGraphBuilder.accountSecurityDestination(
onNavigateBack: () -> Unit,
onNavigateToDeleteAccount: () -> Unit,
) {
composable(
composableWithPushTransitions(
route = ACCOUNT_SECURITY_ROUTE,
enterTransition = TransitionProviders.Enter.pushLeft,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushLeft,
popExitTransition = TransitionProviders.Exit.pushRight,
) {
AccountSecurityScreen(
onNavigateBack = onNavigateBack,

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.platform.feature.settings.accountsecurity.deletea
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
private const val DELETE_ACCOUNT_ROUTE = "delete_account"
@ -14,12 +13,8 @@ private const val DELETE_ACCOUNT_ROUTE = "delete_account"
fun NavGraphBuilder.deleteAccountDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithSlideTransitions(
route = DELETE_ACCOUNT_ROUTE,
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.slideDown,
popEnterTransition = TransitionProviders.Enter.slideUp,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
DeleteAccountScreen(onNavigateBack = onNavigateBack)
}

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.platform.feature.settings.appearance
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithPushTransitions
private const val APPEARANCE_ROUTE = "settings_appearance"
@ -14,12 +13,8 @@ private const val APPEARANCE_ROUTE = "settings_appearance"
fun NavGraphBuilder.appearanceDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithPushTransitions(
route = APPEARANCE_ROUTE,
enterTransition = TransitionProviders.Enter.pushLeft,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushLeft,
popExitTransition = TransitionProviders.Exit.pushRight,
) {
AppearanceScreen(onNavigateBack = onNavigateBack)
}

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.platform.feature.settings.autofill
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithPushTransitions
private const val AUTO_FILL_ROUTE = "settings_auto_fill"
@ -14,12 +13,8 @@ private const val AUTO_FILL_ROUTE = "settings_auto_fill"
fun NavGraphBuilder.autoFillDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithPushTransitions(
route = AUTO_FILL_ROUTE,
enterTransition = TransitionProviders.Enter.pushLeft,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushLeft,
popExitTransition = TransitionProviders.Exit.pushRight,
) {
AutoFillScreen(onNavigateBack = onNavigateBack)
}

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.platform.feature.settings.other
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithPushTransitions
private const val OTHER_ROUTE = "settings_other"
@ -14,12 +13,8 @@ private const val OTHER_ROUTE = "settings_other"
fun NavGraphBuilder.otherDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithPushTransitions(
route = OTHER_ROUTE,
enterTransition = TransitionProviders.Enter.pushLeft,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushLeft,
popExitTransition = TransitionProviders.Exit.pushRight,
) {
OtherScreen(onNavigateBack = onNavigateBack)
}

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.platform.feature.settings.vault
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithPushTransitions
private const val VAULT_SETTINGS_ROUTE = "vault_settings"
@ -14,12 +13,8 @@ private const val VAULT_SETTINGS_ROUTE = "vault_settings"
fun NavGraphBuilder.vaultSettingsDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithPushTransitions(
route = VAULT_SETTINGS_ROUTE,
enterTransition = TransitionProviders.Enter.pushLeft,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushLeft,
popExitTransition = TransitionProviders.Exit.pushRight,
) {
VaultSettingsScreen(onNavigateBack = onNavigateBack)
}

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.platform.feature.vaultunlockednavbar
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithStayTransitions
/**
* The functions below pertain to entry into the [VaultUnlockedNavBarScreen].
@ -30,12 +29,8 @@ fun NavGraphBuilder.vaultUnlockedNavBarDestination(
onNavigateToDeleteAccount: () -> Unit,
onNavigateToPasswordHistory: () -> Unit,
) {
composable(
composableWithStayTransitions(
route = VAULT_UNLOCKED_NAV_BAR_ROUTE,
enterTransition = TransitionProviders.Enter.stay,
exitTransition = TransitionProviders.Exit.stay,
popEnterTransition = TransitionProviders.Enter.stay,
popExitTransition = TransitionProviders.Exit.stay,
) {
VaultUnlockedNavBarScreen(
onNavigateToVaultAddItem = onNavigateToVaultAddItem,

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.tools.feature.generator.passwordhistory
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
/**
* The functions below pertain to entry into the [PasswordHistoryScreen].
@ -17,13 +16,9 @@ private const val PASSWORD_HISTORY_ROUTE: String = "password_history"
fun NavGraphBuilder.passwordHistoryDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithSlideTransitions(
// TODO: (BIT-617) Allow Password History screen to launch from VaultItemScreen
route = PASSWORD_HISTORY_ROUTE,
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.slideDown,
popEnterTransition = TransitionProviders.Enter.slideUp,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
PasswordHistoryScreen(
onNavigateBack = onNavigateBack,

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.tools.feature.send
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
private const val NEW_SEND_ROUTE = "new_send"
@ -14,12 +13,8 @@ private const val NEW_SEND_ROUTE = "new_send"
fun NavGraphBuilder.newSendDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithSlideTransitions(
route = NEW_SEND_ROUTE,
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.slideDown,
popEnterTransition = TransitionProviders.Enter.slideUp,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
NewSendScreen(onNavigateBack = onNavigateBack)
}

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.tools.feature.send
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithRootPushTransitions
const val SEND_ROUTE: String = "send"
@ -14,12 +13,8 @@ const val SEND_ROUTE: String = "send"
fun NavGraphBuilder.sendDestination(
onNavigateToNewSend: () -> Unit,
) {
composable(
composableWithRootPushTransitions(
route = SEND_ROUTE,
enterTransition = TransitionProviders.Enter.stay,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushRight,
popExitTransition = TransitionProviders.Exit.fadeOut,
) {
SendScreen(
onNavigateNewSend = onNavigateToNewSend,

View file

@ -5,9 +5,8 @@ import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
import com.x8bit.bitwarden.ui.vault.model.VaultAddEditType
private const val ADD_TYPE: String = "add"
@ -41,15 +40,11 @@ class VaultAddEditItemArgs(
fun NavGraphBuilder.vaultAddEditItemDestination(
onNavigateBack: () -> Unit,
) {
composable(
composableWithSlideTransitions(
route = ADD_EDIT_ITEM_ROUTE,
arguments = listOf(
navArgument(ADD_EDIT_ITEM_TYPE) { type = NavType.StringType },
),
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.slideDown,
popEnterTransition = TransitionProviders.Enter.slideUp,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
VaultAddItemScreen(onNavigateBack)
}

View file

@ -5,10 +5,9 @@ import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import com.x8bit.bitwarden.data.platform.annotation.OmitFromCoverage
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions
private const val VAULT_ITEM_PREFIX = "vault_item"
private const val VAULT_ITEM_ID = "vault_item_id"
@ -31,15 +30,11 @@ fun NavGraphBuilder.vaultItemDestination(
onNavigateBack: () -> Unit,
onNavigateToVaultEditItem: (vaultItemId: String) -> Unit,
) {
composable(
composableWithSlideTransitions(
route = VAULT_ITEM_ROUTE,
arguments = listOf(
navArgument(VAULT_ITEM_ID) { type = NavType.StringType },
),
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.stay,
popEnterTransition = TransitionProviders.Enter.stay,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
VaultItemScreen(
onNavigateBack = onNavigateBack,

View file

@ -5,9 +5,8 @@ import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithPushTransitions
import com.x8bit.bitwarden.ui.vault.model.VaultItemListingType
private const val CARD: String = "card"
@ -48,7 +47,7 @@ fun NavGraphBuilder.vaultItemListingDestination(
onNavigateToVaultItemScreen: (id: String) -> Unit,
onNavigateToVaultAddItemScreen: () -> Unit,
) {
composable(
composableWithPushTransitions(
route = VAULT_ITEM_LISTING_ROUTE,
arguments = listOf(
navArgument(
@ -63,10 +62,6 @@ fun NavGraphBuilder.vaultItemListingDestination(
},
),
),
enterTransition = TransitionProviders.Enter.pushLeft,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushLeft,
popExitTransition = TransitionProviders.Exit.pushRight,
) {
VaultItemListingScreen(
onNavigateBack = onNavigateBack,

View file

@ -3,8 +3,7 @@ package com.x8bit.bitwarden.ui.vault.feature.vault
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.x8bit.bitwarden.ui.platform.theme.TransitionProviders
import com.x8bit.bitwarden.ui.platform.base.util.composableWithRootPushTransitions
import com.x8bit.bitwarden.ui.vault.model.VaultItemListingType
const val VAULT_ROUTE: String = "vault"
@ -19,12 +18,8 @@ fun NavGraphBuilder.vaultDestination(
onNavigateToVaultItemListingScreen: (vaultItemType: VaultItemListingType) -> Unit,
onDimBottomNavBarRequest: (shouldDim: Boolean) -> Unit,
) {
composable(
composableWithRootPushTransitions(
route = VAULT_ROUTE,
enterTransition = TransitionProviders.Enter.stay,
exitTransition = TransitionProviders.Exit.pushLeft,
popEnterTransition = TransitionProviders.Enter.pushRight,
popExitTransition = TransitionProviders.Exit.fadeOut,
) {
VaultScreen(
onNavigateToVaultAddItemScreen = onNavigateToVaultAddItemScreen,