Add tooltips to visibilty and network icons on entry headers

This commit is contained in:
Hank Grabowski 2024-06-26 14:56:00 -04:00
parent ad1b557dad
commit 02ebaef47a
2 changed files with 12 additions and 61 deletions

View file

@ -125,6 +125,8 @@ class StatusHeaderControl extends StatelessWidget {
style: Theme.of(context).textTheme.bodySmall,
),
IconButton(
tooltip:
'Visibility: ${entry.visibility.type.toLabel()} (click for details)',
onPressed: () async {
await showVisibilityDialog(context, manager, entry.visibility);
},

View file

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import '../../globals.dart';
import '../../models/timeline_network_info.dart';
import '../../utils/known_network_extensions.dart';
class TimelineNetworkInfoControl extends StatelessWidget {
final TimelineNetworkInfo info;
@ -10,69 +11,17 @@ class TimelineNetworkInfoControl extends StatelessWidget {
@override
Widget build(BuildContext context) {
final networkText =
info.network == KnownNetworks.unknown ? info.name : info.labelName;
return GestureDetector(
onTap: () async => showConfirmDialog(context,
info.network == KnownNetworks.unknown ? info.name : info.labelName),
child: Text(
info.forkAwesomeUnicode,
style: const TextStyle(fontFamily: 'ForkAwesome'),
onTap: () async => showConfirmDialog(context, networkText),
child: Tooltip(
message: networkText,
child: Text(
info.forkAwesomeUnicode,
style: const TextStyle(fontFamily: 'ForkAwesome'),
),
),
);
}
}
extension KnownNetworkExtensions on TimelineNetworkInfo {
String get labelName => switch (network) {
KnownNetworks.activityPub => 'ActivityPub',
KnownNetworks.bluesky => 'Bluesky',
KnownNetworks.calckey => 'Calckey',
KnownNetworks.diaspora => 'Diaspora',
KnownNetworks.drupal => 'Drupal',
KnownNetworks.firefish => 'Firefish',
KnownNetworks.friendica => 'Friendica',
KnownNetworks.funkwhale => 'Funkwhale',
KnownNetworks.gnu_social => 'GNU Social',
KnownNetworks.hubzilla => 'Hubzilla',
KnownNetworks.kbin => 'Kbin',
KnownNetworks.lemmy => 'Lemmy',
KnownNetworks.mastodon => 'Mastodon',
KnownNetworks.nextcloud => 'Nextcloud',
KnownNetworks.peertube => 'PeerTube',
KnownNetworks.pixelfed => 'Pixelfed',
KnownNetworks.pleroma => 'Pleroma',
KnownNetworks.plume => 'Plume',
KnownNetworks.red => 'Red',
KnownNetworks.redmatrix => 'RedMatrix',
KnownNetworks.socialhome => 'Socialhome',
KnownNetworks.threads => 'Threads',
KnownNetworks.wordpress => 'WordPress',
KnownNetworks.unknown => 'Unknown',
};
String get forkAwesomeUnicode => switch (network) {
KnownNetworks.activityPub => '\uf2f2',
KnownNetworks.bluesky => '\uf111',
KnownNetworks.calckey => '\uf1ec',
KnownNetworks.diaspora => '\uf2e5',
KnownNetworks.drupal => '\uf1a9',
KnownNetworks.firefish => '\uf06d',
KnownNetworks.friendica => '\uf2e6',
KnownNetworks.funkwhale => '\uf339',
KnownNetworks.gnu_social => '\uf2e7',
KnownNetworks.hubzilla => '\uf2eb',
KnownNetworks.kbin => '\uf058',
KnownNetworks.lemmy => '\uf0c0',
KnownNetworks.mastodon => '\uf2e1',
KnownNetworks.nextcloud => '\uf307',
KnownNetworks.peertube => '\uf2e4',
KnownNetworks.pixelfed => '\uf314',
KnownNetworks.pleroma => '\uf324',
KnownNetworks.plume => '\uf356',
KnownNetworks.red => '\uf2eb',
KnownNetworks.redmatrix => '\uf2eb',
KnownNetworks.socialhome => '\uf2ec',
KnownNetworks.threads => '\uf16d',
KnownNetworks.wordpress => '\uf19a',
KnownNetworks.unknown => '\uf059',
};
}