From 8d7591b7666d1d73668c0407923d5496a467451c Mon Sep 17 00:00:00 2001 From: Hyperling <me@hyperling.com> Date: Fri, 7 Mar 2025 13:26:02 -0700 Subject: [PATCH] Continue trying to fix issue with edited items not notifying parent. --- lib/pages/tracked_item.dart | 120 ++++++++++++++++++------------------ 1 file changed, 61 insertions(+), 59 deletions(-) diff --git a/lib/pages/tracked_item.dart b/lib/pages/tracked_item.dart index 3c76c32..de61d5c 100644 --- a/lib/pages/tracked_item.dart +++ b/lib/pages/tracked_item.dart @@ -473,69 +473,71 @@ class _TrackedItemInputDialogState extends State<TrackedItemInputDialog> { onPressed: () { if (_formKey.currentState!.validate()) { _formKey.currentState!.save(); - setState(() { - switch (_type) { - case ItemType.expense: - Expense expense = Expense( - id: _id, - name: _name, - amount: _amount, - frequency: _freq, - description: _desc, - ); - if (_id != null) { - DatabaseHelper.instance.updateExpense( - expense, + setState( + () { + switch (_type) { + case ItemType.expense: + Expense expense = Expense( + id: _id, + name: _name, + amount: _amount, + frequency: _freq, + description: _desc, ); - } else { - DatabaseHelper.instance.addExpense( - expense, + if (_id != null) { + DatabaseHelper.instance.updateExpense( + expense, + ); + } else { + DatabaseHelper.instance.addExpense( + expense, + ); + } + break; + case ItemType.income: + Income income = Income( + id: _id, + name: _name, + amount: _amount, + frequency: _freq, + description: _desc, ); - } - break; - case ItemType.income: - Income income = Income( - id: _id, - name: _name, - amount: _amount, - frequency: _freq, - description: _desc, - ); - if (_id != null) { - DatabaseHelper.instance.updateIncome( - income, + if (_id != null) { + DatabaseHelper.instance.updateIncome( + income, + ); + } else { + DatabaseHelper.instance.addIncome( + income, + ); + } + break; + case ItemType.asset: + Asset asset = Asset( + id: _id, + name: _name, + amount: _amount, + description: _desc, ); - } else { - DatabaseHelper.instance.addIncome( - income, + if (_id != null) { + DatabaseHelper.instance.updateAsset( + asset, + ); + } else { + DatabaseHelper.instance.addAsset( + asset, + ); + } + break; + default: + throw UnimplementedError( + "No code for type ${_type!.title}", ); - } - break; - case ItemType.asset: - Asset asset = Asset( - id: _id, - name: _name, - amount: _amount, - description: _desc, - ); - if (_id != null) { - DatabaseHelper.instance.updateAsset( - asset, - ); - } else { - DatabaseHelper.instance.addAsset( - asset, - ); - } - break; - default: - throw UnimplementedError( - "No code for type ${_type!.title}", - ); - } - }); - widget.notifyParent(); - Navigator.of(context).pop(); + } + widget.notifyParent(); + Navigator.of(context).pop(); + }, + ); } }, icon: Icon(Icons.save),