Updated on 2026-08-14

This commit is contained in:
Tangem 2026-02-17 10:51:15 +03:00
parent d021758340
commit a71a0e9a65
4 changed files with 16 additions and 3 deletions

View file

@ -18,6 +18,7 @@ import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.vectorResource
@ -39,6 +40,7 @@ import com.tangem.core.ui.components.fields.AutoSizeTextField
import com.tangem.core.ui.extensions.*
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.core.ui.utils.rememberHideKeyboardNestedScrollConnection
import com.tangem.domain.models.account.CryptoPortfolioIcon
import com.tangem.features.account.createedit.entity.AccountCreateEditUM
import com.tangem.features.account.createedit.entity.AccountCreateEditUM.Account
@ -53,11 +55,12 @@ internal fun AccountCreateEditContent(
) {
val keyboardController = LocalSoftwareKeyboardController.current
val focusManager = LocalFocusManager.current
val nestedScrollConnection = rememberHideKeyboardNestedScrollConnection()
Column(
modifier = modifier
.background(color = TangemTheme.colors.background.secondary)
.fillMaxSize()
.imePadding()
.systemBarsPadding(),
horizontalAlignment = Alignment.CenterHorizontally,
) {
@ -65,6 +68,7 @@ internal fun AccountCreateEditContent(
Column(
modifier = Modifier
.nestedScroll(nestedScrollConnection)
.verticalScroll(rememberScrollState())
.padding(horizontal = 16.dp)
.weight(1f),

View file

@ -213,7 +213,7 @@ internal fun LazyListScope.portfolioTokensList(portfolio: TokensListItemUM.Portf
portfolioItem(
portfolio = portfolio,
modifier = Modifier.padding(top = 8.dp),
modifier = Modifier,
isBalanceHidden = isBalanceHidden,
)
if (!isExpanded) return

View file

@ -322,7 +322,7 @@ internal fun LazyListScope.portfolioTokensList(portfolio: TokensListItemUM.Portf
portfolioItem(
portfolio = portfolio,
modifier = Modifier.padding(top = 8.dp),
modifier = Modifier,
isBalanceHidden = isBalanceHidden,
)
if (!isExpanded) return

View file

@ -10,7 +10,9 @@ import com.tangem.domain.models.account.AccountId
import com.tangem.domain.models.wallet.UserWallet
import com.tangem.domain.models.wallet.UserWalletId
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.coroutines.Job
import kotlinx.coroutines.channels.BufferOverflow
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.launch
import javax.inject.Inject
@ -43,10 +45,13 @@ internal class ExpandedAccountsHolder @Inject constructor(
.toSet()
// main state holder
val expandedAccounts = MutableStateFlow(initExpandedState)
var debounceJob: Job? = null
actionChannel
.filter { (accountId, _) -> accountId.userWalletId == walletId }
.filter { debounceJob?.isActive != true }
.onEach { (accountId, isExpand) ->
debounceJob = launch { delay(DEBOUNCE_MILLIS) }
val newState = AccountExpandedState(accountId, isExpand)
launch { accountsExpandedRepository.update(newState) }
if (isExpand) {
@ -100,4 +105,8 @@ internal class ExpandedAccountsHolder @Inject constructor(
}
private fun walletAccounts(walletId: UserWalletId): Flow<AccountList> = singleAccountListSupplier(walletId)
companion object {
private const val DEBOUNCE_MILLIS = 200L
}
}