ui_helpers.dart 6.09 KiB
import 'dart:typed_data';
import 'package:clipboard/clipboard.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:timeago/timeago.dart' as timeago;
import '../data/models/contact.dart';
import '../data/models/node_list_cubit.dart';
import '../data/models/transaction_cubit.dart';
import '../g1/api.dart';
import '../shared_prefs.dart';
import 'widgets/first_screen/circular_icon.dart';
void showTooltip(BuildContext context, String title, String message) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text(title),
content: Text(message),
actions: <Widget>[
TextButton(
onPressed: () => Navigator.pop(context),
child: Text(
tr('close').toUpperCase(),
),
),
],
);
},
);
}
void copyPublicKeyToClipboard(BuildContext context) {
FlutterClipboard.copy(SharedPreferencesHelper().getPubKey()).then(
(dynamic value) => ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(tr('key_copied_to_clipboard')))));
}
const Color defAvatarBgColor = Colors.grey;
const Color defAvatarColor = Colors.white;
Widget avatar(Uint8List? rawAvatar,
{Color color = defAvatarColor,
Color bgColor = defAvatarBgColor,
double avatarSize = 24}) {
return rawAvatar != null && rawAvatar.isNotEmpty
? CircleAvatar(
radius: avatarSize,
child: ClipOval(
child: Image.memory(
rawAvatar,
fit: BoxFit.cover,
)))
: CircularIcon(
iconData: Icons.person, backgroundColor: color, iconColor: bgColor);
}
String humanizeFromToPubKey(String publicAddress, String address) {
if (address == publicAddress) {
return tr('your_wallet');
} else {
return humanizePubKey(address);
}
}
String humanizeContact(String publicAddress, Contact contact) {
final bool hasName = contact.name?.isNotEmpty ?? false;