okane/lib/ui/widgets/transaction_card.dart

52 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:okane/database/sqlite.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 TransactionDto transaction;
final VoidCallback onTap;
@override
Widget build(BuildContext context) {
return Card(
clipBehavior: Clip.hardEdge,
child: ListTile(
onTap: onTap,
leading: ImageWrapper(
title: transaction.beneficiary.name,
path: transaction.beneficiary.imagePath,
),
trailing: Text(formatDateTime(transaction.transaction.date)),
title: Text(transaction.beneficiary.name),
subtitle: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
formatCurrency(transaction.transaction.amount),
style: TextStyle(
color:
transaction.transaction.amount < 0
? Colors.red
: Colors.green,
),
),
if (subtitle != null) subtitle!,
],
),
),
);
}
}