Updated on 2026-08-14

This commit is contained in:
Tangem 2024-08-22 16:01:13 +04:00
parent 88ed1d92f3
commit dbc5555503
4 changed files with 60 additions and 64 deletions

View file

@ -1,54 +0,0 @@
package com.tangem.features.managetokens.entity
import androidx.compose.runtime.Immutable
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent
import com.tangem.domain.tokens.model.Network
@Immutable
internal sealed class AddCustomTokenUM : TangemBottomSheetConfigContent {
abstract val selectedNetwork: SelectedNetworkUM?
abstract val addTokenButton: AddCustomTokenButtonUM
abstract val popBack: () -> Unit
data class NetworkSelector(
override val selectedNetwork: SelectedNetworkUM? = null,
override val popBack: () -> Unit,
) : AddCustomTokenUM() {
override val addTokenButton: AddCustomTokenButtonUM = AddCustomTokenButtonUM.Hidden
}
data class Form(
override val selectedNetwork: SelectedNetworkUM,
override val addTokenButton: AddCustomTokenButtonUM.Visible,
override val popBack: () -> Unit,
) : AddCustomTokenUM()
}
@Immutable
internal data class SelectedNetworkUM(
val id: Network.ID,
val name: String,
)
@Immutable
internal sealed class AddCustomTokenButtonUM {
open val onClick: () -> Unit = {}
open val isEnabled: Boolean = false
val isVisible: Boolean
get() = this is Visible
data object Hidden : AddCustomTokenButtonUM() {
override val onClick: () -> Unit = {}
}
data class Visible(
override val isEnabled: Boolean,
override val onClick: () -> Unit,
) : AddCustomTokenButtonUM()
}

View file

@ -1,10 +0,0 @@
package com.tangem.features.managetokens.entity
import androidx.compose.runtime.Immutable
import kotlinx.collections.immutable.ImmutableList
@Immutable
internal data class CustomTokenNetworkSelectorUM(
val showTitle: Boolean,
val networks: ImmutableList<CurrencyNetworkUM>,
)

View file

@ -0,0 +1,37 @@
package com.tangem.features.managetokens.entity.customtoken
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent
import com.tangem.core.ui.extensions.TextReference
import com.tangem.domain.tokens.model.Network
import com.tangem.domain.wallets.models.UserWalletId
import kotlinx.serialization.Serializable
@Serializable
internal data class AddCustomTokenConfig(
val step: Step,
val popBack: () -> Unit,
val userWalletId: UserWalletId,
val selectedNetwork: SelectedNetwork? = null,
val selectedDerivationPath: SelectedDerivationPath? = null,
) : TangemBottomSheetConfigContent {
enum class Step {
INITIAL_NETWORK_SELECTOR,
NETWORK_SELECTOR,
DERIVATION_PATH_SELECTOR,
FORM,
}
}
@Serializable
internal data class SelectedNetwork(
val id: Network.ID,
val name: TextReference,
val derivationPath: String,
)
@Serializable
internal data class SelectedDerivationPath(
val value: String,
val name: TextReference,
)

View file

@ -0,0 +1,23 @@
package com.tangem.features.managetokens.entity.customtoken
import androidx.compose.runtime.Immutable
import com.tangem.features.managetokens.entity.item.SelectableItemUM
import kotlinx.collections.immutable.ImmutableList
internal data class CustomTokenSelectorUM(
val header: HeaderUM,
val items: ImmutableList<SelectableItemUM>,
) {
@Immutable
sealed class HeaderUM {
data object None : HeaderUM()
data object Description : HeaderUM()
data class CustomDerivationButton(
val onClick: () -> Unit,
) : HeaderUM()
}
}