16236c6d6cc754452ac6a245e11c0d6b7bbeff4e
Replace the inline OutlinedTextField inside ExpensesTabContent with the shared SearchToolbar in the topBar. The query is shared across both tabs; closing the toolbar (X / navigate-up) deactivates search and clears the filter. In ExpenseListScreenModel: - searchQuery becomes StateFlow<String?> (null = inactive, "" = active empty, "foo" = active query) - setSearchQuery now accepts String? to match SearchToolbar's onChangeSearchQuery signature - expenses and recurring combine on _searchQuery.debounce(SEARCH_DEBOUNCE_MILLIS).distinctUntilChanged() so fast typing does not re-filter on every keystroke - recurring is now filtered by query against category name and recurring note (case-insensitive substring) In ExpenseListScreen: - Remove the inline search field, the date-range-filter search hint label, and the now-unused OutlinedTextField / Icons.Outlined.Search imports - Both ExpensesTabContent and RecurringTabContent now take a nullable searchQuery and show a generic 'No results' message when the active filter empties the list, or the per-tab empty copy otherwise - Add the expense_list_no_results string
Description
No description provided
Languages
Kotlin
100%