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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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