diff --git a/lib/ui/app/entities/entity_list_tile.dart b/lib/ui/app/entities/entity_list_tile.dart index c3a7e45aa..0278c11b7 100644 --- a/lib/ui/app/entities/entity_list_tile.dart +++ b/lib/ui/app/entities/entity_list_tile.dart @@ -4,6 +4,7 @@ import 'package:flutter/rendering.dart'; // Package imports: import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; // Project imports: @@ -97,6 +98,26 @@ class _EntityListTileState extends State { ), ); + String defaultSubtitle = ''; + final entity = widget.entity; + + if (entity is InvoiceEntity) { + defaultSubtitle = + formatNumber(entity.amount, context, clientId: entity.clientId) + + ' • ' + + formatDate(entity.date, context); + } else if (entity is PaymentEntity) { + defaultSubtitle = + formatNumber(entity.amount, context, clientId: entity.clientId) + + ' • ' + + formatDate(entity.date, context); + } else if (entity is TransactionEntity) { + defaultSubtitle = + formatNumber(entity.amount, context, currencyId: entity.currencyId) + + ' • ' + + formatDate(entity.date, context); + } + return MouseRegion( onEnter: (event) => setState(() => _isHovered = true), onExit: (event) => setState(() => _isHovered = false), @@ -121,18 +142,20 @@ class _EntityListTileState extends State { maxLines: 1, overflow: TextOverflow.ellipsis, ), - subtitle: - (widget.subtitle ?? '').isEmpty && widget.entity.isActive - ? null - : Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - if ((widget.subtitle ?? '').isNotEmpty) - Text(widget.subtitle), - if (!widget.entity.isActive) - EntityStateLabel(widget.entity), - ], - ), + subtitle: ((widget.subtitle ?? '').isNotEmpty || + defaultSubtitle.isNotEmpty || + !entity.isActive) + ? Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if ((widget.subtitle ?? '').isNotEmpty) + Text(widget.subtitle) + else if (defaultSubtitle.isNotEmpty) + Text(defaultSubtitle), + if (!entity.isActive) EntityStateLabel(widget.entity), + ], + ) + : null, leading: leading, trailing: trailing, isThreeLine: diff --git a/lib/ui/expense/view/expense_view_overview.dart b/lib/ui/expense/view/expense_view_overview.dart index 589bf1300..12afdc83e 100644 --- a/lib/ui/expense/view/expense_view_overview.dart +++ b/lib/ui/expense/view/expense_view_overview.dart @@ -196,19 +196,11 @@ class ExpenseOverview extends StatelessWidget { EntityListTile( entity: invoice, isFilter: isFilter, - subtitle: formatNumber(invoice.amount, context, - clientId: invoice.clientId) + - ' • ' + - formatDate(invoice.date, context), ), EntityListTile(entity: purchaseOrder, isFilter: isFilter), EntityListTile( entity: transaction, isFilter: isFilter, - subtitle: formatNumber(transaction.amount, context, - currencyId: transaction.currencyId) + - ' • ' + - formatDate(transaction.date, context), ), if ((expense.recurringId ?? '').isNotEmpty) EntityListTile(entity: recurringExpense, isFilter: isFilter), diff --git a/lib/ui/payment/view/payment_view.dart b/lib/ui/payment/view/payment_view.dart index 518884deb..8f0d4baff 100644 --- a/lib/ui/payment/view/payment_view.dart +++ b/lib/ui/payment/view/payment_view.dart @@ -160,10 +160,6 @@ class _PaymentViewState extends State { EntityListTile( isFilter: widget.isFilter, entity: transaction, - subtitle: formatNumber(transaction.amount, context, - currencyId: transaction.currencyId) + - ' • ' + - formatDate(transaction.date, context), ), payment.privateNotes != null && payment.privateNotes.isNotEmpty