From cf7021a982bbb8e6994e515bd4c687916840f2c5 Mon Sep 17 00:00:00 2001 From: Vaibhav Surve Date: Thu, 20 Nov 2025 18:02:03 +0530 Subject: [PATCH] feat: refactor ExpenseDetailScreen to use tagged controller for improved state management --- .../widgets/expense/expense_main_components.dart | 5 +---- lib/view/expense/expense_detail_screen.dart | 10 ++++++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/helpers/widgets/expense/expense_main_components.dart b/lib/helpers/widgets/expense/expense_main_components.dart index 3cc4b77..79a1b75 100644 --- a/lib/helpers/widgets/expense/expense_main_components.dart +++ b/lib/helpers/widgets/expense/expense_main_components.dart @@ -303,12 +303,9 @@ class ExpenseList extends StatelessWidget { child: InkWell( borderRadius: BorderRadius.circular(8), onTap: () async { - final result = await Get.to( + await Get.to( () => ExpenseDetailScreen(expenseId: expense.id), ); - if (result == true && onViewDetail != null) { - await onViewDetail!(); - } }, child: Padding( padding: const EdgeInsets.symmetric(vertical: 8), diff --git a/lib/view/expense/expense_detail_screen.dart b/lib/view/expense/expense_detail_screen.dart index 9e0f30e..7c06879 100644 --- a/lib/view/expense/expense_detail_screen.dart +++ b/lib/view/expense/expense_detail_screen.dart @@ -33,21 +33,27 @@ class ExpenseDetailScreen extends StatefulWidget { class _ExpenseDetailScreenState extends State with UIMixin { - final controller = Get.put(ExpenseDetailController()); + late final ExpenseDetailController controller; final projectController = Get.find(); final permissionController = Get.put(PermissionController()); EmployeeInfo? employeeInfo; final RxBool canSubmit = false.obs; bool _checkedPermission = false; - @override void initState() { super.initState(); + controller = Get.put(ExpenseDetailController(), tag: widget.expenseId); controller.init(widget.expenseId); _loadEmployeeInfo(); } + @override + void dispose() { + Get.delete(tag: widget.expenseId); + super.dispose(); + } + void _loadEmployeeInfo() async { final info = await LocalStorage.getEmployeeInfo(); employeeInfo = info;