Can save expenses to local list
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing

This commit is contained in:
2025-07-14 16:24:59 +02:00
parent dd035f8a15
commit 547e9b7aad
3 changed files with 44 additions and 19 deletions

View File

@ -10,9 +10,11 @@ import 'package:moneymgr_mobile/utils/extensions.dart';
import 'package:moneymgr_mobile/utils/time_utils.dart';
import 'package:moneymgr_mobile/widgets/pdf_viewer.dart';
import '../utils/hooks.dart';
class ExpenseEditor extends HookConsumerWidget {
final Uint8List file;
final Function(BaseExpenseInfo) onFinished;
final Future<void> Function(BaseExpenseInfo) onFinished;
final Function()? onRescan;
const ExpenseEditor({
@ -30,6 +32,8 @@ class ExpenseEditor extends HookConsumerWidget {
final costController = useTextEditingController();
final timeController = useState(DateTime.now());
final (:pending, :snapshot, :hasError) = useAsyncTask();
// Pick a new date
handlePickDate() async {
final date = await showDatePicker(
@ -48,10 +52,10 @@ class ExpenseEditor extends HookConsumerWidget {
return;
}
onFinished(
pending.value = onFinished(
BaseExpenseInfo(
label: labelController.text,
cost: int.tryParse(costController.text) ?? 0,
cost: double.tryParse(costController.text) ?? 0,
time: timeController.value,
),
);
@ -79,7 +83,13 @@ class ExpenseEditor extends HookConsumerWidget {
),
// Submit
IconButton(onPressed: handleSubmit, icon: Icon(Icons.save)),
snapshot.connectionState == ConnectionState.waiting
? CircularProgressIndicator()
: IconButton(
onPressed: handleSubmit,
icon: Icon(Icons.save),
color: hasError ? Colors.red : null,
),
],
),
body: Column(
@ -94,7 +104,10 @@ class ExpenseEditor extends HookConsumerWidget {
// Cost
TextField(
controller: costController,
keyboardType: TextInputType.number,
keyboardType: TextInputType.numberWithOptions(
decimal: true,
signed: false,
),
decoration: const InputDecoration(labelText: 'Cost'),
textInputAction: TextInputAction.done,
),