This commit is contained in:
2026-03-29 15:59:49 +03:00
parent 1f6d129fc2
commit bc8c272e63
21 changed files with 114 additions and 327 deletions
@@ -30,7 +30,6 @@ class AddTransactionState {
});
factory AddTransactionState.fromTransaction(Transaction tx) {
// Override type to transfer when category is 'Transfer'
final resolvedType = (tx.category == 'Transfer')
? TransactionType.transfer
: tx.type;
+1 -7
View File
@@ -206,7 +206,6 @@ class _AddTransactionScreenState extends ConsumerState<AddTransactionScreen>
final amount = double.parse(parsed);
final state = ref.read(addTransactionProvider(widget.initial));
// Validate transfer
if (state.type == TransactionType.transfer) {
bool hasError = false;
@@ -471,14 +470,11 @@ class _AddTransactionScreenState extends ConsumerState<AddTransactionScreen>
onPressed: () async {
Navigator.pop(ctx);
// Always delete the record we were given
await ref
.read(transactionsProvider.notifier)
.delete(widget.initial!.id);
// If this is a Transfer, also delete the counterpart
if (widget.initial!.category == 'Transfer') {
// Use the pre-populated IDs from initState if available
final counterpartId =
widget.initial!.type == TransactionType.expense
? _transferIncomeRecordId
@@ -489,7 +485,6 @@ class _AddTransactionScreenState extends ConsumerState<AddTransactionScreen>
.read(transactionsProvider.notifier)
.delete(counterpartId);
} else {
// Fallback: search manually
final allTxs =
ref.read(transactionsProvider).valueOrNull ??
[];
@@ -893,10 +888,9 @@ class _ToAccountDropdownOverlay extends ConsumerWidget {
.selectedAccountId;
final toAccountId = ref.read(addTransactionProvider(initial)).toAccountId;
// Calculate position from trigger key
double top = 340;
double left = 20;
double triggerWidth = 200; // fallback width
double triggerWidth = 200;
if (triggerKey?.currentContext != null) {
final triggerBox =
@@ -134,10 +134,9 @@ class AccountDropdownOverlay extends ConsumerWidget {
Widget build(BuildContext context, WidgetRef ref) {
final accountsAsync = ref.watch(accountsProvider);
// Calculate position from trigger key
double top = 76;
double left = 20;
double triggerWidth = 200; // fallback width
double triggerWidth = 200;
if (triggerKey?.currentContext != null) {
final triggerBox =
@@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import '../../../core/constants.dart';
import '../../../shared/models/transaction.dart';
class SubmitButton extends StatelessWidget {