Updated on 2026-08-14
This commit is contained in:
parent
10fc588872
commit
30364467f1
4 changed files with 25 additions and 12 deletions
|
|
@ -38,18 +38,20 @@ internal class AddToPortfolioBSContentUMFactory(
|
|||
/**
|
||||
* Create [TangemBottomSheetConfig]
|
||||
*
|
||||
|
||||
* @param portfolioData portfolio data
|
||||
* @param portfolioUIData portfolio bottom sheet visibility model
|
||||
* @param selectedWallet selected wallet
|
||||
* @param alreadyAddedNetworks already added networks
|
||||
*/
|
||||
fun create(
|
||||
currentState: TangemBottomSheetConfig?,
|
||||
portfolioData: PortfolioData,
|
||||
portfolioUIData: PortfolioUIData,
|
||||
selectedWallet: UserWallet?,
|
||||
alreadyAddedNetworks: Set<String>?,
|
||||
): TangemBottomSheetConfig {
|
||||
return TangemBottomSheetConfig(
|
||||
return (currentState ?: TangemBottomSheetConfig.Empty).copy(
|
||||
isShown = portfolioUIData.portfolioBSVisibilityModel.addToPortfolioBSVisibility,
|
||||
onDismissRequest = { onAddToPortfolioVisibilityChange(false) },
|
||||
content = if (selectedWallet != null && alreadyAddedNetworks != null) {
|
||||
|
|
|
|||
|
|
@ -14,8 +14,11 @@ import kotlinx.collections.immutable.ImmutableList
|
|||
/**
|
||||
* Factory for creating [MyPortfolioUM]
|
||||
*
|
||||
* @property onAddClick callback when user wants to add new token
|
||||
* @property onTokenItemClick callback when user wants to see actions with token
|
||||
* @property onAddClick callback when user wants to add new token
|
||||
* @property addToPortfolioBSContentUMFactory factory for creating add to portfolio bottom sheet content
|
||||
* @property tokenActionsHandler token actions handler
|
||||
* @property currentState current state provider
|
||||
* @property updateTokens callback for updating tokens
|
||||
*
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
|
|
@ -87,6 +90,7 @@ internal class MyPortfolioUMFactory(
|
|||
?.toSet()
|
||||
|
||||
return addToPortfolioBSContentUMFactory.create(
|
||||
currentState = currentState().addToPortfolioBSConfig,
|
||||
portfolioData = portfolioData,
|
||||
portfolioUIData = portfolioUIData,
|
||||
selectedWallet = selectedWallet,
|
||||
|
|
|
|||
|
|
@ -58,10 +58,9 @@ internal fun MyPortfolio(state: MyPortfolioUM, modifier: Modifier = Modifier) {
|
|||
}
|
||||
}
|
||||
|
||||
when (state) {
|
||||
is MyPortfolioUM.AddFirstToken -> AddToPortfolioBottomSheet(config = state.addToPortfolioBSConfig)
|
||||
is MyPortfolioUM.Tokens -> AddToPortfolioBottomSheet(config = state.addToPortfolioBSConfig)
|
||||
else -> Unit
|
||||
val bsConfig = state.addToPortfolioBSConfig
|
||||
if (bsConfig != null) {
|
||||
AddToPortfolioBottomSheet(config = bsConfig)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,10 +7,12 @@ import kotlinx.collections.immutable.ImmutableList
|
|||
@Immutable
|
||||
internal sealed class MyPortfolioUM {
|
||||
|
||||
abstract val addToPortfolioBSConfig: TangemBottomSheetConfig?
|
||||
|
||||
data class Tokens(
|
||||
override val addToPortfolioBSConfig: TangemBottomSheetConfig,
|
||||
val tokens: ImmutableList<PortfolioTokenUM>,
|
||||
val buttonState: AddButtonState,
|
||||
val addToPortfolioBSConfig: TangemBottomSheetConfig,
|
||||
val tokenReceiveBSConfig: TangemBottomSheetConfig,
|
||||
val onAddClick: () -> Unit,
|
||||
) : MyPortfolioUM() {
|
||||
|
|
@ -23,13 +25,19 @@ internal sealed class MyPortfolioUM {
|
|||
}
|
||||
|
||||
data class AddFirstToken(
|
||||
val addToPortfolioBSConfig: TangemBottomSheetConfig,
|
||||
override val addToPortfolioBSConfig: TangemBottomSheetConfig,
|
||||
val onAddClick: () -> Unit,
|
||||
) : MyPortfolioUM()
|
||||
|
||||
data object Loading : MyPortfolioUM()
|
||||
data object Loading : MyPortfolioUM() {
|
||||
override val addToPortfolioBSConfig: TangemBottomSheetConfig? = null
|
||||
}
|
||||
|
||||
data object Unavailable : MyPortfolioUM()
|
||||
data object Unavailable : MyPortfolioUM() {
|
||||
override val addToPortfolioBSConfig: TangemBottomSheetConfig? = null
|
||||
}
|
||||
|
||||
data object UnavailableForWallet : MyPortfolioUM()
|
||||
data object UnavailableForWallet : MyPortfolioUM() {
|
||||
override val addToPortfolioBSConfig: TangemBottomSheetConfig? = null
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue