import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:material_symbols_icons/symbols.dart'; import 'package:surface/screens/account/profile_page.dart' show kBadgesMeta; import 'package:surface/types/account.dart'; class AccountBadge extends StatelessWidget { final SnAccountBadge badge; final double radius; final EdgeInsets? padding; const AccountBadge({ super.key, required this.badge, this.radius = 20, this.padding, }); @override Widget build(BuildContext context) { return Tooltip( richMessage: TextSpan( children: [ TextSpan(text: kBadgesMeta[badge.type]?.$1.tr() ?? 'unknown'.tr()), if (badge.metadata['title'] != null) TextSpan( text: '\n${badge.metadata['title']}', style: const TextStyle(fontWeight: FontWeight.bold), ), TextSpan(text: '\n'), TextSpan( text: DateFormat.yMEd().format(badge.createdAt), ), ], ), child: Container( padding: padding ?? EdgeInsets.all(3), decoration: BoxDecoration( borderRadius: BorderRadius.circular(radius), color: kBadgesMeta[badge.type]?.$3, ), child: Icon( kBadgesMeta[badge.type]?.$2 ?? Symbols.question_mark, color: Colors.white, fill: 1, size: radius - 4, ), ), ); } }