diff --git a/feature/history/src/commonMain/kotlin/org/mifospay/feature/history/HistoryScreen.kt b/feature/history/src/commonMain/kotlin/org/mifospay/feature/history/HistoryScreen.kt index 0e8c8eed..844f562a 100644 --- a/feature/history/src/commonMain/kotlin/org/mifospay/feature/history/HistoryScreen.kt +++ b/feature/history/src/commonMain/kotlin/org/mifospay/feature/history/HistoryScreen.kt @@ -252,8 +252,7 @@ fun HistoryScreenBottomSheet( text = stringResource(Res.string.feature_history_filter_clear_all), color = KptTheme.colorScheme.primary, modifier = Modifier.clickable { - onAction(HistoryAction.SetFilter(TransactionType.OTHER)) - onAction(HistoryAction.OnFilterClick) + onAction(HistoryAction.ClearFilters) }, ) } diff --git a/feature/history/src/commonMain/kotlin/org/mifospay/feature/history/HistoryViewModel.kt b/feature/history/src/commonMain/kotlin/org/mifospay/feature/history/HistoryViewModel.kt index 2e87bc48..fc672ebd 100644 --- a/feature/history/src/commonMain/kotlin/org/mifospay/feature/history/HistoryViewModel.kt +++ b/feature/history/src/commonMain/kotlin/org/mifospay/feature/history/HistoryViewModel.kt @@ -54,9 +54,20 @@ class HistoryViewModel( is HistoryAction.OnApplyFilterClick -> handleApplyFilterClick() is HistoryAction.SetSelectedAccount -> handleSetSelectedAccount(action.account) + + HistoryAction.ClearFilters -> handleClearFilters() } } + private fun handleClearFilters() { + mutableStateFlow.update { + it.copy( + currentSelectedTransactionType = TransactionType.OTHER, + showFilter = false, + ) + } + applyFilter(state.transactions) + } private fun handleApplyFilterClick() { val transactions = state.transactionsWithAccounts[state.currentSelectedAccount] mutableStateFlow.update { @@ -179,6 +190,7 @@ sealed interface HistoryAction { data object OnFilterClick : HistoryAction data class SetSelectedAccount(val account: Account) : HistoryAction data object OnApplyFilterClick : HistoryAction + data object ClearFilters : HistoryAction sealed interface Internal : HistoryAction { data class TransactionsLoaded(val result: DataState>>) : Internal