Updated on 2026-08-14

This commit is contained in:
Tangem 2023-08-15 17:44:04 +03:00
parent 8cb232cd36
commit 89cb0e3cdb
3 changed files with 43 additions and 11 deletions

View file

@ -50,10 +50,12 @@ internal fun OrganizeTokensScreen(state: OrganizeTokensState, modifier: Modifier
},
content = { paddingValues ->
TokenList(
modifier = Modifier.padding(paddingValues),
modifier = Modifier
.padding(paddingValues)
.fillMaxSize(),
listState = tokensListState,
state = state.itemsState,
dragConfig = state.dndConfig,
dndConfig = state.dndConfig,
)
},
floatingActionButtonPosition = FabPosition.Center,
@ -68,15 +70,15 @@ internal fun OrganizeTokensScreen(state: OrganizeTokensState, modifier: Modifier
private fun TokenList(
listState: LazyListState,
state: OrganizeTokensListState,
dragConfig: OrganizeTokensState.DragAndDropConfig,
dndConfig: OrganizeTokensState.DragAndDropConfig,
modifier: Modifier = Modifier,
) {
Box(modifier = modifier) {
val reorderableListState = rememberReorderableLazyListState(
onMove = dragConfig.onItemDragged,
onMove = dndConfig.onItemDragged,
listState = listState,
canDragOver = dragConfig.canDragItemOver,
onDragEnd = { _, _ -> dragConfig.onItemDragEnd() },
canDragOver = dndConfig.canDragItemOver,
onDragEnd = { _, _ -> dndConfig.onItemDragEnd() },
)
val items = state.items
@ -84,7 +86,8 @@ private fun TokenList(
modifier = Modifier
.reorderable(reorderableListState)
.align(Alignment.TopCenter)
.padding(horizontal = TangemTheme.dimens.spacing16),
.padding(horizontal = TangemTheme.dimens.spacing16)
.fillMaxSize(),
state = reorderableListState.listState,
contentPadding = PaddingValues(
top = TangemTheme.dimens.spacing12,
@ -97,7 +100,7 @@ private fun TokenList(
) { index, item ->
val onDragStart = remember(item) {
{ dragConfig.onDragStart(item) }
{ dndConfig.onDragStart(item) }
}
DraggableItem(
@ -217,14 +220,23 @@ private fun TopBar(
config = ActionButtonConfig(
text = TextReference.Res(id = R.string.organize_tokens_sort_by_balance),
iconResId = R.drawable.ic_sort_24,
enabled = config.isEnabled,
onClick = config.onSortClick,
dimContent = !config.isSortedByBalance,
),
modifier = Modifier.weight(1f),
color = TangemTheme.colors.background.primary,
)
RoundedActionButton(
config = ActionButtonConfig(
text = TextReference.Res(id = R.string.organize_tokens_group),
text = TextReference.Res(
id = if (config.isGrouped) {
R.string.organize_tokens_ungroup
} else {
R.string.organize_tokens_group
},
),
enabled = config.isEnabled,
iconResId = R.drawable.ic_group_24,
onClick = config.onGroupClick,
),
@ -253,6 +265,8 @@ private fun Actions(config: OrganizeTokensState.ActionsConfig, modifier: Modifie
modifier = Modifier.weight(1f),
text = stringResource(id = R.string.common_apply),
onClick = config.onApplyClick,
showProgress = config.showApplyProgress,
enabled = config.canApply,
)
}
}