fix(#25): render expense tab counts via TabText
Replace the plain Text inside PrimaryTabRow's Tab with the shared TabText composable. Pass the current size of the expenses and recurring state flows as badgeCount so each tab shows a small pill with the (post-filter) list size. Counts update reactively as items are added, deleted, or filtered by search/date.
This commit is contained in:
@@ -68,6 +68,7 @@ import dev.achmad.ledgerr.ui.components.ExpandedFabScrim
|
||||
import dev.achmad.ledgerr.ui.components.ExportAction
|
||||
import dev.achmad.ledgerr.ui.components.MiniFab
|
||||
import dev.achmad.ledgerr.ui.components.SingleSelectFilterChipGroup
|
||||
import dev.achmad.ledgerr.ui.components.TabText
|
||||
import dev.achmad.ledgerr.ui.screens.add_edit_expense.AddEditExpenseScreen
|
||||
import dev.achmad.ledgerr.ui.screens.add_edit_recurring.AddEditRecurringScreen
|
||||
import dev.achmad.ledgerr.ui.screens.import_bank_statement.ImportBankStatementScreen
|
||||
@@ -136,10 +137,11 @@ object ExpenseListScreen : Screen {
|
||||
) {
|
||||
Column(modifier = Modifier.fillMaxSize()) {
|
||||
PrimaryTabRow(selectedTabIndex = selectedTab) {
|
||||
listOf(
|
||||
stringResource(R.string.expense_list_tab_expenses),
|
||||
stringResource(R.string.expense_list_tab_recurring),
|
||||
).forEachIndexed { index, title ->
|
||||
val tabs = listOf(
|
||||
stringResource(R.string.expense_list_tab_expenses) to expenses.size,
|
||||
stringResource(R.string.expense_list_tab_recurring) to recurring.size,
|
||||
)
|
||||
tabs.forEachIndexed { index, (title, count) ->
|
||||
Tab(
|
||||
selected = selectedTab == index,
|
||||
onClick = {
|
||||
@@ -147,7 +149,7 @@ object ExpenseListScreen : Screen {
|
||||
pagerState.animateScrollToPage(index)
|
||||
}
|
||||
},
|
||||
text = { Text(text = title) },
|
||||
text = { TabText(text = title, badgeCount = count) },
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user