Fix copy to clipboard for icon message

This commit is contained in:
Hillel Coren 2023-03-12 09:13:33 +02:00
parent 45a6e88b3c
commit 7bc24603b2
9 changed files with 40 additions and 25 deletions

View File

@ -8,12 +8,14 @@ class IconMessage extends StatelessWidget {
this.iconData,
this.color,
this.trailing,
this.copyToClipboard = false,
});
final String text;
final IconData iconData;
final Color color;
final Widget trailing;
final bool copyToClipboard;
@override
Widget build(BuildContext context) {
@ -30,16 +32,24 @@ class IconMessage extends StatelessWidget {
),
SizedBox(width: 16),
Expanded(
child: CopyToClipboard(
value: text,
child: Text(
text,
maxLines: null,
style: TextStyle(
color: Colors.white,
),
),
),
child: copyToClipboard
? CopyToClipboard(
value: text,
child: Text(
text,
maxLines: null,
style: TextStyle(
color: Colors.white,
),
),
)
: Text(
text,
maxLines: null,
style: TextStyle(
color: Colors.white,
),
),
),
if (trailing != null) ...[
SizedBox(width: 16),

View File

@ -300,7 +300,7 @@ class ClientOverview extends StatelessWidget {
.present(localization.active, localization.archived),
),
if ((client.publicNotes ?? '').isNotEmpty) ...[
IconMessage(client.publicNotes),
IconMessage(client.publicNotes, copyToClipboard: true),
ListDivider()
],
],

View File

@ -184,7 +184,8 @@ class ExpenseOverview extends StatelessWidget {
),
ListDivider(),
if ((expense.privateNotes ?? '').isNotEmpty) ...[
IconMessage(expense.privateNotes, iconData: Icons.lock),
IconMessage(expense.privateNotes,
iconData: Icons.lock, copyToClipboard: true),
ListDivider(),
],
FieldGrid(fields),
@ -217,7 +218,7 @@ class ExpenseOverview extends StatelessWidget {
),
..._buildDetailsList(),
if ((expense.publicNotes ?? '').isNotEmpty) ...[
IconMessage(expense.publicNotes),
IconMessage(expense.publicNotes, copyToClipboard: true),
ListDivider()
],
],

View File

@ -139,10 +139,8 @@ class InvoiceOverview extends StatelessWidget {
if ((invoice.privateNotes ?? '').isNotEmpty) {
widgets.addAll([
IconMessage(
invoice.privateNotes,
iconData: Icons.lock,
),
IconMessage(invoice.privateNotes,
iconData: Icons.lock, copyToClipboard: true),
ListDivider(),
]);
}
@ -510,7 +508,7 @@ class InvoiceOverview extends StatelessWidget {
if ((invoice.publicNotes ?? '').isNotEmpty) {
widgets.addAll([
ListDivider(),
IconMessage(invoice.publicNotes),
IconMessage(invoice.publicNotes, copyToClipboard: true),
]);
}

View File

@ -166,7 +166,8 @@ class _PaymentViewState extends State<PaymentView> {
payment.privateNotes.isNotEmpty
? Column(
children: <Widget>[
IconMessage(payment.privateNotes),
IconMessage(payment.privateNotes,
copyToClipboard: true),
Container(
color: Theme.of(context).cardColor,
height: 12.0,

View File

@ -108,7 +108,8 @@ class _ProjectOverviewState extends State<ProjectOverview> {
),
ListDivider(),
if ((project.privateNotes ?? '').isNotEmpty) ...[
IconMessage(project.privateNotes, iconData: Icons.lock),
IconMessage(project.privateNotes,
iconData: Icons.lock, copyToClipboard: true),
ListDivider()
],
EntityListTile(
@ -156,7 +157,10 @@ class _ProjectOverviewState extends State<ProjectOverview> {
]);
if ((project.publicNotes ?? '').isNotEmpty) {
widgets.addAll([IconMessage(project.publicNotes), ListDivider()]);
widgets.addAll([
IconMessage(project.publicNotes, copyToClipboard: true),
ListDivider()
]);
}
return widgets;

View File

@ -182,7 +182,7 @@ class _TaskOverviewState extends State<TaskOverview> {
if (task.description.isNotEmpty) {
widgets.addAll([
IconMessage(task.description),
IconMessage(task.description, copyToClipboard: true),
ListDivider(),
]);
}

View File

@ -84,7 +84,7 @@ class _TransactionViewState extends State<TransactionView> {
],
if (transaction.isConverted) ...[
if (transaction.description.isNotEmpty) ...[
IconMessage(transaction.description),
IconMessage(transaction.description, copyToClipboard: true),
ListDivider(),
],
EntityListTile(

View File

@ -93,7 +93,8 @@ class VendorOverview extends StatelessWidget {
),
ListDivider(),
if ((vendor.privateNotes ?? '').isNotEmpty) ...[
IconMessage(vendor.privateNotes, iconData: Icons.lock),
IconMessage(vendor.privateNotes,
iconData: Icons.lock, copyToClipboard: true),
ListDivider()
],
if (vendor.hasUser)
@ -143,7 +144,7 @@ class VendorOverview extends StatelessWidget {
.present(localization.active, localization.archived),
),
if ((vendor.publicNotes ?? '').isNotEmpty) ...[
IconMessage(vendor.publicNotes),
IconMessage(vendor.publicNotes, copyToClipboard: true),
ListDivider()
],
],