diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/market/list/components/SortByMenu.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/market/list/components/SortByMenu.kt index 34588157c5..4e8635b86b 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/market/list/components/SortByMenu.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/market/list/components/SortByMenu.kt @@ -42,7 +42,7 @@ internal fun SortByMenu( horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier .fillMaxWidth() - .width(238.dp) + .widthIn(238.dp) .clickableSingle( onClick = { sortMenuUM.onOptionClicked(sortType) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/ui/OrganizeDropDownMenu.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/ui/OrganizeDropDownMenu.kt index b840828ac4..f041d28b88 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/ui/OrganizeDropDownMenu.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/ui/OrganizeDropDownMenu.kt @@ -1,13 +1,22 @@ package com.tangem.feature.wallet.child.organizetokens.ui +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.rememberVectorPainter +import androidx.compose.ui.res.vectorResource import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.dp import com.tangem.core.ui.ds.contextmenu.TangemContextMenu -import com.tangem.core.ui.ds.contextmenu.TangemContextMenuCheckboxItem -import com.tangem.core.ui.extensions.TextReference +import com.tangem.core.ui.extensions.clickableSingle +import com.tangem.core.ui.extensions.stringResourceSafe import com.tangem.core.ui.res.TangemTheme import com.tangem.feature.wallet.child.organizetokens.entity.OrganizeTokensUM import com.tangem.feature.wallet.impl.R @@ -25,19 +34,104 @@ internal fun OrganizeDropDownMenu( offset = DpOffset.Zero, modifier = modifier, ) { - TangemContextMenuCheckboxItem( - title = TextReference.Res(R.string.organize_tokens_sort_by_balance), - isChecked = organizeMenuUM.isSortedByBalance, - onClick = organizeMenuUM.onSortClick, - ) - HorizontalDivider( - thickness = 0.5.dp, - color = TangemTheme.colors2.border.neutral.quaternary, - ) - TangemContextMenuCheckboxItem( - title = TextReference.Res(R.string.organize_tokens_group), - isChecked = organizeMenuUM.isGrouped, - onClick = organizeMenuUM.onGroupClick, + Menu( + organizeMenuUM = organizeMenuUM, + onDropdownDismiss = onDropdownDismiss, ) } +} + +@Composable +private fun Menu( + onDropdownDismiss: () -> Unit, + organizeMenuUM: OrganizeTokensUM.OrganizeMenuUM, + modifier: Modifier = Modifier, +) { + Column(modifier) { + SortByBalanceMenuSection( + organizeMenuUM = organizeMenuUM, + onDropdownDismiss = onDropdownDismiss, + ) + GroupTokensMenuSection( + organizeMenuUM = organizeMenuUM, + onDropdownDismiss = onDropdownDismiss, + ) + } +} + +@Composable +private fun SortByBalanceMenuSection(organizeMenuUM: OrganizeTokensUM.OrganizeMenuUM, onDropdownDismiss: () -> Unit) { + Text( + text = stringResourceSafe(R.string.organize_tokens_sort_by_balance), + style = TangemTheme.typography2.headingSemibold17, + color = if (organizeMenuUM.isSortedByBalance) { + TangemTheme.colors2.text.status.disabled + } else { + TangemTheme.colors2.text.neutral.primary + }, + maxLines = 1, + modifier = Modifier + .fillMaxWidth() + .widthIn(238.dp) + .clickableSingle( + onClick = { + organizeMenuUM.onSortClick() + onDropdownDismiss() + }, + enabled = !organizeMenuUM.isSortedByBalance, + ) + .padding(vertical = TangemTheme.dimens2.x5, horizontal = TangemTheme.dimens2.x4), + ) + + HorizontalDivider( + thickness = 0.5.dp, + color = TangemTheme.colors2.border.neutral.quaternary, + ) +} + +@Composable +private fun GroupTokensMenuSection(organizeMenuUM: OrganizeTokensUM.OrganizeMenuUM, onDropdownDismiss: () -> Unit) { + Row( + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier + .fillMaxWidth() + .widthIn(238.dp) + .clickableSingle( + onClick = { + organizeMenuUM.onGroupClick() + onDropdownDismiss() + }, + ) + .padding(vertical = TangemTheme.dimens2.x5, horizontal = TangemTheme.dimens2.x4), + ) { + Text( + text = stringResourceSafe(R.string.organize_tokens_group), + style = TangemTheme.typography2.headingSemibold17, + color = TangemTheme.colors2.text.neutral.primary, + maxLines = 1, + ) + if (organizeMenuUM.isGrouped) { + Box( + modifier = Modifier + .padding(TangemTheme.dimens2.x0_5) + .size(TangemTheme.dimens2.x5) + .background( + color = TangemTheme.colors2.graphic.neutral.primary, + shape = CircleShape, + ), + ) { + Icon( + painter = rememberVectorPainter( + ImageVector.vectorResource(R.drawable.ic_check_default_24), + ), + contentDescription = null, + tint = TangemTheme.colors2.graphic.neutral.primaryInverted, + modifier = Modifier + .align(Alignment.Center) + .padding(TangemTheme.dimens2.x0_5) + .size(TangemTheme.dimens2.x4), + ) + } + } + } } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/ui/OrganizeTokensContent.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/ui/OrganizeTokensContent.kt index 8dc4c3b082..f1c3b50e57 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/ui/OrganizeTokensContent.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/organizetokens/ui/OrganizeTokensContent.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp import com.tangem.core.ui.components.SpacerH import com.tangem.core.ui.components.bottomsheets.TangemBottomSheet import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig @@ -101,7 +102,9 @@ internal fun OrganizeTokensContent( organizeMenuUM = organizeTokensUM.organizeMenuUM, showDropdownMenu = isShowDropdownMenu, onDropdownDismiss = { isShowDropdownMenu = false }, - modifier = Modifier.hazeEffectTangem(hazeState), + modifier = Modifier.hazeEffectTangem(hazeState) { + blurRadius = 6.dp + }, ) }, )