Updated on 2026-08-14

This commit is contained in:
Tangem 2025-08-20 14:31:47 +03:00
parent c63d35bb8b
commit 11eb1bbbdc
8 changed files with 25 additions and 27 deletions

View file

@ -149,10 +149,7 @@ internal class ChildFactory @Inject constructor(
if (hotWalletFeatureToggles.isHotWalletEnabled) {
createComponentChild(
context = context,
params = NewWelcomeComponent.Params(
launchMode = route.launchMode,
intent = route.intent,
),
params = Unit,
componentFactory = newWelcomeComponentFactory,
)
} else {

View file

@ -30,8 +30,10 @@ sealed class AppRoute(val path: String) : Route {
@Serializable
data class Welcome(
@Deprecated("No longer used, will be removed in future releases")
val launchMode: InitScreenLaunchMode = InitScreenLaunchMode.Standard,
// we still have this param to be handled by WalletConnectLinkIntentHandler in WelcomeMiddleware
@Deprecated("No longer used, will be removed in future releases")
val intent: SerializableIntent? = null,
) : AppRoute(path = "/welcome"), RouteBundleParams {

View file

@ -129,7 +129,10 @@ internal fun HotAccessCodeRequestFullScreenContent(state: HotAccessCodeRequestUM
.fillMaxWidth()
.navigationBarsPadding()
.imePadding(),
text = "Use biometric",
text = stringResourceSafe(
id = R.string.welcome_unlock,
stringResourceSafe(R.string.common_biometrics),
),
onClick = state.useBiometricClick,
)
}

View file

@ -1,16 +1,9 @@
package com.tangem.features.welcome
import com.tangem.common.routing.entity.InitScreenLaunchMode
import com.tangem.common.routing.entity.SerializableIntent
import com.tangem.core.decompose.factory.ComponentFactory
import com.tangem.core.ui.decompose.ComposableContentComponent
interface WelcomeComponent : ComposableContentComponent {
data class Params(
val launchMode: InitScreenLaunchMode,
val intent: SerializableIntent?,
)
interface Factory : ComponentFactory<Params, WelcomeComponent>
interface Factory : ComponentFactory<Unit, WelcomeComponent>
}

View file

@ -15,10 +15,10 @@ import dagger.assisted.AssistedInject
internal class DefaultWelcomeComponent @AssistedInject constructor(
@Assisted context: AppComponentContext,
@Assisted params: WelcomeComponent.Params,
@Assisted val params: Unit,
) : WelcomeComponent, AppComponentContext by context {
private val model: WelcomeModel = getOrCreateModel(params)
private val model: WelcomeModel = getOrCreateModel()
@Composable
override fun Content(modifier: Modifier) {
@ -32,6 +32,6 @@ internal class DefaultWelcomeComponent @AssistedInject constructor(
@AssistedFactory
interface Factory : WelcomeComponent.Factory {
override fun create(context: AppComponentContext, params: WelcomeComponent.Params): DefaultWelcomeComponent
override fun create(context: AppComponentContext, params: Unit): DefaultWelcomeComponent
}
}

View file

@ -48,8 +48,6 @@ internal class WelcomeModel @Inject constructor(
private val walletsRepository: WalletsRepository,
) : Model() {
// TODO add intent handling
// val params
val uiState: StateFlow<WelcomeUM>
field = MutableStateFlow<WelcomeUM>(WelcomeUM.Plain)

View file

@ -12,16 +12,17 @@ import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
import com.tangem.core.ui.components.bottomsheets.sheet.TangemBottomSheet
import com.tangem.core.ui.components.inputrow.InputRowDefault
import com.tangem.core.ui.decorations.roundedShapeItemDecoration
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.features.welcome.impl.R
import com.tangem.features.welcome.impl.ui.state.AddWalletBottomSheetContentUM
@Composable
fun AddWalletBottomSheet(config: TangemBottomSheetConfig) {
TangemBottomSheet<AddWalletBottomSheetContentUM>(
config = config,
titleText = TextReference.Str("Add Wallet"),
titleText = resourceReference(R.string.auth_info_add_wallet_title),
containerColor = TangemTheme.colors.background.tertiary,
content = { Content(it) },
)
@ -38,7 +39,7 @@ private fun Content(content: AddWalletBottomSheetContentUM) {
),
) {
InputRowDefault(
text = TextReference.Str("Create New Wallet"),
text = resourceReference(R.string.home_button_create_new_wallet),
modifier = Modifier
.roundedShapeItemDecoration(
currentIndex = 0,
@ -49,7 +50,7 @@ private fun Content(content: AddWalletBottomSheetContentUM) {
.clickable { content.onOptionClick(AddWalletBottomSheetContentUM.Option.Create) },
)
InputRowDefault(
text = TextReference.Str("Add Existing Wallet"),
text = resourceReference(R.string.home_button_add_existing_wallet),
modifier = Modifier
.roundedShapeItemDecoration(
currentIndex = 1,
@ -60,7 +61,7 @@ private fun Content(content: AddWalletBottomSheetContentUM) {
.clickable { content.onOptionClick(AddWalletBottomSheetContentUM.Option.Add) },
)
InputRowDefault(
text = TextReference.Str("Buy Tangem Wallet"),
text = resourceReference(R.string.details_buy_wallet),
modifier = Modifier
.roundedShapeItemDecoration(
currentIndex = 2,

View file

@ -22,6 +22,7 @@ import com.tangem.common.ui.userwallet.state.UserWalletItemUM
import com.tangem.core.ui.components.*
import com.tangem.core.ui.components.block.TangemBlockCardColors
import com.tangem.core.ui.components.buttons.common.TangemButtonsDefaults
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.TangemTheme
import com.tangem.features.welcome.impl.R
import com.tangem.features.welcome.impl.ui.state.WelcomeUM
@ -78,7 +79,10 @@ internal fun AnimatedContentScope.WelcomeSelectWallet(state: WelcomeUM.SelectWal
.padding(16.dp)
.navigationBarsPadding()
.animateEnterExit(fadeIn(), fadeOut()),
text = "Unlock all with biometric",
text = stringResourceSafe(
R.string.user_wallet_list_unlock_all_with,
stringResourceSafe(id = R.string.common_biometrics),
),
onClick = state.onUnlockWithBiometricClick,
)
}
@ -122,7 +126,7 @@ private fun AnimatedContentScope.TopBar(state: WelcomeUM.SelectWallet, modifier:
TextButton(
modifier = Modifier.clip(TangemTheme.shapes.roundedCornersLarge),
text = "Add Wallet",
text = stringResourceSafe(R.string.auth_info_add_wallet_title),
colors = TangemButtonsDefaults.defaultTextButtonColors.copy(
contentColor = TangemTheme.colors.text.primary1,
),
@ -146,7 +150,7 @@ private fun AnimatedContentScope.TitleText(modifier: Modifier = Modifier) {
) + fadeIn(tween(delayMillis = 300)),
exit = fadeOut(),
),
text = "Welcome back!",
text = stringResourceSafe(R.string.auth_info_title),
style = TangemTheme.typography.h2,
color = TangemTheme.colors.text.primary1,
)
@ -161,7 +165,7 @@ private fun AnimatedContentScope.TitleText(modifier: Modifier = Modifier) {
) + fadeIn(tween(delayMillis = 300)),
exit = fadeOut(),
),
text = "Select a wallet to log in",
text = stringResourceSafe(R.string.auth_info_subtitle),
style = TangemTheme.typography.body1,
color = TangemTheme.colors.text.secondary,
)