From 93cdaab2c21eb7d0d506b11da313fa15ef126597 Mon Sep 17 00:00:00 2001 From: Vaibhav Surve Date: Mon, 21 Jul 2025 16:39:11 +0530 Subject: [PATCH] feat(expense): add refresh functionality to expense list --- lib/view/expense/expense_screen.dart | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/view/expense/expense_screen.dart b/lib/view/expense/expense_screen.dart index edf0eb5..40460eb 100644 --- a/lib/view/expense/expense_screen.dart +++ b/lib/view/expense/expense_screen.dart @@ -26,7 +26,11 @@ class _ExpenseMainScreenState extends State { @override void initState() { super.initState(); - expenseController.fetchExpenses(); // Load expenses from API + expenseController.fetchExpenses(); + } + + void _refreshExpenses() { + expenseController.fetchExpenses(); } @override @@ -41,6 +45,7 @@ class _ExpenseMainScreenState extends State { searchController: searchController, onChanged: (value) => searchQuery.value = value, onFilterTap: _openFilterBottomSheet, + onRefreshTap: _refreshExpenses, ), _ToggleButtons(isHistoryView: isHistoryView), Expanded( @@ -217,15 +222,18 @@ class _ExpenseAppBar extends StatelessWidget implements PreferredSizeWidget { } // Search and Filter Widget + class _SearchAndFilter extends StatelessWidget { final TextEditingController searchController; final ValueChanged onChanged; final VoidCallback onFilterTap; + final VoidCallback onRefreshTap; const _SearchAndFilter({ required this.searchController, required this.onChanged, required this.onFilterTap, + required this.onRefreshTap, }); @override @@ -260,6 +268,18 @@ class _SearchAndFilter extends StatelessWidget { ), ), MySpacing.width(8), + Tooltip( + message: 'Refresh Data', + child: InkWell( + borderRadius: BorderRadius.circular(24), + onTap: onRefreshTap, + child: const Padding( + padding: EdgeInsets.all(0), + child: Icon(Icons.refresh, color: Colors.green, size: 28), + ), + ), + ), + MySpacing.width(8), IconButton( icon: const Icon(Icons.tune, color: Colors.black), onPressed: null, // Disabled as per request @@ -401,7 +421,6 @@ class _ExpenseList extends StatelessWidget { children: [ Row( children: [ - MyText.bodyMedium( expense.expensesType.name, fontWeight: 700,