fix: Resolve type mismatch for TransactionListItem

This commit is contained in:
2025-05-03 17:00:44 +03:00
parent d0e6feb874
commit 027b9ff91e
+18 -5
View File
@@ -7,7 +7,8 @@ import 'dart:math'; // For random data generation in sample add
import '../database/database.dart' as db; // Import database with prefix 'db'
import '../models/category.dart'; // Keep Category model for UI structure (SpendingPieChart)
import '../models/transaction_record.dart' as db;
// Import TransactionRecord with a different alias to avoid conflict with db.Transaction
import '../models/transaction_record.dart' as model;
import '../widgets/summary_item.dart';
import '../widgets/expandable_section.dart';
import '../widgets/spending_pie_chart.dart';
@@ -510,11 +511,23 @@ class _ExpensesScreenState extends State<ExpensesScreen> with TickerProviderStat
color: theme.dividerColor.withOpacity(0.3),
),
itemBuilder: (context, index) {
final transaction = transactions[index];
// Use the TransactionListItem widget
// Pass a dummy animation for FadeTransition inside item
// Get the db.Transaction object from the stream
final dbTransaction = transactions[index];
// Get the corresponding category details (icon, color)
final categoryDetails = CategoryUtils.getCategoryDetails(dbTransaction.categoryName);
// Create the model.TransactionRecord needed by TransactionListItem
final transactionRecord = model.TransactionRecord(
dbTransaction.categoryName,
dbTransaction.amount,
categoryDetails.icon, // Get icon from utils
categoryDetails.color, // Get color from utils
dbTransaction.date,
dbTransaction.merchant,
);
// Use the TransactionListItem widget with the correct model type
return TransactionListItem(
transaction: transaction,
transaction: transactionRecord, // Pass the model.TransactionRecord
animation: kAlwaysCompleteAnimation, // Required by FadeTransition
);
},