Compare commits

...

2 Commits

Author SHA1 Message Date
admin f6ac2aace1 Merge pull request 'fix(#44): pin expense filter chips directly under tabs' (#48) from fix/44-expenses-screen-empty-gap-tabs-chips into main
Reviewed-on: #48
2026-06-28 14:58:58 +00:00
Achmad Setyabudi Susilo 0977e34a2d fix(#44): pin expense filter chips directly under tabs
Hoist the date-range filter chip group and divider out of the
LazyColumn and into a Column wrapper, so the chips sit directly
under the Expenses/Recurring tabs and the list fills the rest of
the page. Previously the chips were the first item of the
LazyColumn, which left a large empty area between the tabs and
the chips.

Also add Modifier.fillMaxSize() to the Recurring tab's LazyColumn
so it fills the pager page (no chips to hoist, but the layout
is now consistent with the Expenses tab).
2026-06-28 21:57:16 +07:00
@@ -270,29 +270,28 @@ private fun ExpensesTabContent(
return
}
LazyColumn(
contentPadding = contentPadding,
) {
item {
SingleSelectFilterChipGroup(
options = DateRangeFilter.entries.map { it to stringResource(it.labelRes()) },
selectedOption = dateRangeFilter to stringResource(dateRangeFilter.labelRes()),
onSelectionChanged = { (filter, _) -> screenModel.setDateRangeFilter(filter) },
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 16.dp, vertical = 4.dp),
)
}
item {
HorizontalDivider(modifier = Modifier.padding(vertical = 8.dp))
}
items(items = expenses, key = { it.expense.id }) { item ->
ExpenseRow(
item = item,
onClick = { onExpenseClick(item.expense.id) },
onLongClick = { onExpenseLongClick(item.expense.id) },
)
HorizontalDivider()
Column(modifier = Modifier.fillMaxSize()) {
SingleSelectFilterChipGroup(
options = DateRangeFilter.entries.map { it to stringResource(it.labelRes()) },
selectedOption = dateRangeFilter to stringResource(dateRangeFilter.labelRes()),
onSelectionChanged = { (filter, _) -> screenModel.setDateRangeFilter(filter) },
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 16.dp, vertical = 4.dp),
)
HorizontalDivider(modifier = Modifier.padding(vertical = 8.dp))
LazyColumn(
modifier = Modifier.fillMaxSize(),
contentPadding = contentPadding,
) {
items(items = expenses, key = { it.expense.id }) { item ->
ExpenseRow(
item = item,
onClick = { onExpenseClick(item.expense.id) },
onLongClick = { onExpenseLongClick(item.expense.id) },
)
HorizontalDivider()
}
}
}
}
@@ -318,6 +317,7 @@ private fun RecurringTabContent(
}
LazyColumn(
modifier = Modifier.fillMaxSize(),
contentPadding = contentPadding,
) {
items(items = recurring, key = { it.recurring.id }) { item ->