Updated on 2026-08-14
This commit is contained in:
parent
3a4ce4d24b
commit
76c64ef543
27 changed files with 270 additions and 238 deletions
|
|
@ -7,7 +7,7 @@ import com.tangem.core.ui.res.TangemTheme
|
|||
import com.tangem.core.ui.screen.ComposeFragment
|
||||
import com.tangem.core.ui.theme.AppThemeModeHolder
|
||||
import com.tangem.feature.wallet.presentation.router.InnerWalletRouter
|
||||
import com.tangem.features.managetokens.navigation.ManageTokensRouter
|
||||
import com.tangem.features.managetokens.navigation.ManageTokensUi
|
||||
import com.tangem.features.wallet.navigation.WalletRouter
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import javax.inject.Inject
|
||||
|
|
@ -24,7 +24,7 @@ internal class WalletFragment : ComposeFragment() {
|
|||
override lateinit var appThemeModeHolder: AppThemeModeHolder
|
||||
|
||||
@Inject
|
||||
internal lateinit var manageTokensRouter: ManageTokensRouter
|
||||
internal lateinit var manageTokensUi: ManageTokensUi
|
||||
|
||||
/** Feature router */
|
||||
@Inject
|
||||
|
|
@ -44,7 +44,7 @@ internal class WalletFragment : ComposeFragment() {
|
|||
|
||||
_walletRouter.Initialize(
|
||||
onFinish = requireActivity()::finish,
|
||||
manageTokensRouter = manageTokensRouter,
|
||||
manageTokensUi = manageTokensUi,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.tangem.feature.wallet.presentation.router
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import androidx.compose.foundation.layout.statusBarsPadding
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Modifier
|
||||
|
|
@ -27,7 +28,7 @@ import com.tangem.feature.wallet.presentation.organizetokens.OrganizeTokensScree
|
|||
import com.tangem.feature.wallet.presentation.organizetokens.OrganizeTokensViewModel
|
||||
import com.tangem.feature.wallet.presentation.wallet.ui.WalletScreen
|
||||
import com.tangem.feature.wallet.presentation.wallet.viewmodels.WalletViewModel
|
||||
import com.tangem.features.managetokens.navigation.ManageTokensRouter
|
||||
import com.tangem.features.managetokens.navigation.ManageTokensUi
|
||||
import com.tangem.features.tokendetails.navigation.TokenDetailsRouter
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
|
|
@ -42,7 +43,7 @@ internal class DefaultWalletRouter(
|
|||
override fun getEntryFragment(): Fragment = WalletFragment.create()
|
||||
|
||||
@Composable
|
||||
override fun Initialize(onFinish: () -> Unit, manageTokensRouter: ManageTokensRouter) {
|
||||
override fun Initialize(onFinish: () -> Unit, manageTokensUi: ManageTokensUi) {
|
||||
this.onFinish = onFinish
|
||||
|
||||
NavHost(
|
||||
|
|
@ -56,24 +57,15 @@ internal class DefaultWalletRouter(
|
|||
}
|
||||
|
||||
var bottomSheetHeaderHeight by remember { mutableStateOf(0.dp) }
|
||||
val innerController = rememberNavController()
|
||||
|
||||
WalletScreen(
|
||||
state = viewModel.uiState.collectAsStateWithLifecycle().value,
|
||||
bottomSheetHeaderHeightProvider = { bottomSheetHeaderHeight },
|
||||
bottomSheetContent = {
|
||||
NavHost(
|
||||
navController = innerController,
|
||||
startDestination = manageTokensRouter.startDestination,
|
||||
) {
|
||||
// Manage Tokens
|
||||
with(manageTokensRouter) {
|
||||
initialize(
|
||||
navController = innerController,
|
||||
onHeaderSizeChange = { bottomSheetHeaderHeight = it },
|
||||
)
|
||||
}
|
||||
}
|
||||
// Manage Tokens
|
||||
manageTokensUi.Content(
|
||||
onHeaderSizeChange = { bottomSheetHeaderHeight = it },
|
||||
)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
@ -97,6 +89,7 @@ internal class DefaultWalletRouter(
|
|||
}
|
||||
}
|
||||
|
||||
@SuppressLint("RestrictedApi")
|
||||
override fun popBackStack(screen: AppScreen?) {
|
||||
/*
|
||||
* It's hack that avoid issue with closing the wallet screen.
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import androidx.compose.runtime.Stable
|
|||
import com.tangem.core.navigation.AppScreen
|
||||
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
|
||||
import com.tangem.domain.wallets.models.UserWalletId
|
||||
import com.tangem.features.managetokens.navigation.ManageTokensRouter
|
||||
import com.tangem.features.managetokens.navigation.ManageTokensUi
|
||||
import com.tangem.features.wallet.navigation.WalletRouter
|
||||
|
||||
/**
|
||||
|
|
@ -26,7 +26,7 @@ internal interface InnerWalletRouter : WalletRouter {
|
|||
*/
|
||||
@Suppress("TopLevelComposableFunctions")
|
||||
@Composable
|
||||
fun Initialize(onFinish: () -> Unit, manageTokensRouter: ManageTokensRouter)
|
||||
fun Initialize(onFinish: () -> Unit, manageTokensUi: ManageTokensUi)
|
||||
|
||||
/** Pop back stack */
|
||||
fun popBackStack(screen: AppScreen? = null)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue