feat: refactor ExpenseDetailScreen to use tagged controller for improved state management
This commit is contained in:
parent
efefb1c34b
commit
cf7021a982
@ -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),
|
||||
|
||||
@ -33,21 +33,27 @@ class ExpenseDetailScreen extends StatefulWidget {
|
||||
|
||||
class _ExpenseDetailScreenState extends State<ExpenseDetailScreen>
|
||||
with UIMixin {
|
||||
final controller = Get.put(ExpenseDetailController());
|
||||
late final ExpenseDetailController controller;
|
||||
final projectController = Get.find<ProjectController>();
|
||||
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<ExpenseDetailController>(tag: widget.expenseId);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void _loadEmployeeInfo() async {
|
||||
final info = await LocalStorage.getEmployeeInfo();
|
||||
employeeInfo = info;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user