twonly-app/lib/src/visual/components/notification_badge.comp.dart
2026-04-21 17:29:01 +02:00

49 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
class NotificationBadgeComp extends StatelessWidget {
const NotificationBadgeComp({
required this.count,
required this.child,
this.backgroundColor = Colors.red,
this.textColor = Colors.white,
super.key,
});
final String count;
final Color backgroundColor;
final Color textColor;
final Widget child;
@override
Widget build(BuildContext context) {
if (count == '0') return child;
final infinity = count == '';
return Stack(
children: [
child,
Positioned(
right: 3,
top: 0,
child: SizedBox(
height: 18,
width: 18,
child: CircleAvatar(
backgroundColor: backgroundColor,
child: Center(
child: Transform.rotate(
angle: infinity ? 90 * (3.141592653589793 / 180) : 0,
child: Text(
infinity ? '8' : count,
style: TextStyle(
color: textColor,
fontSize: 10,
),
),
),
),
),
),
),
],
);
}
}