Updated on 2026-08-14

This commit is contained in:
Tangem 2023-12-18 17:33:15 +03:00
parent 762121b9b5
commit b5b4122c5f
3 changed files with 42 additions and 45 deletions

View file

@ -1,8 +1,7 @@
package com.tangem.feature.swap.ui
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@ -29,6 +28,7 @@ internal fun SwapScreen(stateHolder: SwapStateHolder) {
iconRes = R.drawable.ic_close_24,
)
},
contentWindowInsets = WindowInsets(left = 0, top = 0, right = 0, bottom = 0),
containerColor = TangemTheme.colors.background.secondary,
) { scaffoldPaddings ->

View file

@ -1,6 +1,6 @@
package com.tangem.feature.swap.ui
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.*
import androidx.compose.foundation.*
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
@ -45,58 +45,53 @@ internal fun SwapScreenContent(state: SwapStateHolder, modifier: Modifier = Modi
.fillMaxSize()
.background(color = TangemTheme.colors.background.secondary),
) {
Column {
Column(
Column(
modifier = Modifier
.fillMaxWidth()
.verticalScroll(rememberScrollState())
.padding(
start = TangemTheme.dimens.spacing16,
end = TangemTheme.dimens.spacing16,
top = TangemTheme.dimens.spacing16,
bottom = TangemTheme.dimens.spacing32,
),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing16),
) {
MainInfo(state)
ProviderItemBlock(
state = state.providerState,
modifier = Modifier
.fillMaxWidth()
.verticalScroll(rememberScrollState())
.padding(
start = TangemTheme.dimens.spacing16,
end = TangemTheme.dimens.spacing16,
top = TangemTheme.dimens.spacing16,
bottom = TangemTheme.dimens.spacing32,
.clickable(
enabled = state.providerState.onProviderClick != null,
onClick = { state.providerState.onProviderClick?.invoke(state.providerState.id) },
),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing16),
) {
MainInfo(state)
)
ProviderItemBlock(
state = state.providerState,
FeeItemBlock(state = state.fee)
if (state.warnings.isNotEmpty()) SwapWarnings(warnings = state.warnings)
MainButton(state = state, onPermissionWarningClick = state.onShowPermissionBottomSheet)
state.tosState?.let {
ProviderTos(
tosState = it,
modifier = Modifier
.clickable(
enabled = state.providerState.onProviderClick != null,
onClick = { state.providerState.onProviderClick?.invoke(state.providerState.id) },
),
.padding(top = TangemTheme.dimens.spacing16),
)
FeeItemBlock(state = state.fee)
if (state.warnings.isNotEmpty()) SwapWarnings(warnings = state.warnings)
MainButton(state = state, onPermissionWarningClick = state.onShowPermissionBottomSheet)
state.tosState?.let {
ProviderTos(
tosState = it,
modifier = Modifier
.padding(top = TangemTheme.dimens.spacing16),
)
}
}
}
AnimatedVisibility(
visible = keyboard is Keyboard.Opened,
modifier = Modifier
.imePadding()
.align(Alignment.BottomCenter),
) {
if (keyboard is Keyboard.Opened) {
Text(
text = stringResource(id = R.string.send_max_amount_label),
style = TangemTheme.typography.button,
color = TangemTheme.colors.text.primary1,
modifier = Modifier
.align(Alignment.BottomCenter)
.imePadding()
.fillMaxWidth()
.background(TangemTheme.colors.button.secondary)
.clickable { state.onMaxAmountSelected?.invoke() }

View file

@ -191,7 +191,9 @@ private fun Header(type: TransactionCardType, balance: String, modifier: Modifie
color = TangemTheme.colors.text.tertiary,
maxLines = 1,
style = MaterialTheme.typography.subtitle2,
modifier = Modifier.defaultMinSize(minHeight = TangemTheme.dimens.size24),
modifier = Modifier
.defaultMinSize(minHeight = TangemTheme.dimens.size24)
.align(Alignment.CenterVertically),
)
SpacerW16()
if (balance.isNotBlank()) {
@ -201,8 +203,8 @@ private fun Header(type: TransactionCardType, balance: String, modifier: Modifie
color = TangemTheme.colors.text.tertiary,
style = MaterialTheme.typography.body2,
modifier = Modifier
.defaultMinSize(minHeight = TangemTheme.dimens.size20)
.padding(top = TangemTheme.dimens.spacing2),
.defaultMinSize(minHeight = TangemTheme.dimens.size24)
.align(Alignment.CenterVertically),
)
}
} else {