okane/lib/ui/widgets/transaction_card.dart

50 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:okane/database/collections/transaction.dart';
import 'package:okane/database/database.dart';
import 'package:okane/ui/utils.dart';
import 'package:okane/ui/widgets/image_wrapper.dart';
class TransactionCard extends StatelessWidget {
final Widget? subtitle;
const TransactionCard({
super.key,
required this.transaction,
required this.onTap,
this.subtitle,
});
final Transaction transaction;
final VoidCallback onTap;
@override
Widget build(BuildContext context) {
return Card(
child: ListTile(
onTap: onTap,
leading: ImageWrapper(
title: transaction.beneficiary.value!.name,
path: transaction.beneficiary.value!.imagePath,
onTap: () {},
),
trailing: Text(formatDateTime(transaction.date)),
title: Text(transaction.beneficiary.value!.name),
subtitle: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
formatCurrency(transaction.amount),
style: TextStyle(
color: transaction.amount < 0 ? Colors.red : Colors.green,
),
),
if (subtitle != null) subtitle!,
],
),
),
);
}
}