tencent_cloud_chat_uikit_fl.../lib/ui/widgets/unread_message.dart

51 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_statelesswidget.dart';
import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_base.dart';
import 'package:tencent_cloud_chat_uikit/theme/color.dart';
import 'package:tencent_cloud_chat_uikit/theme/tui_theme.dart';
class UnreadMessage extends TIMUIKitStatelessWidget {
final int unreadCount;
final double? width;
final double? height;
UnreadMessage(
{Key? key,
required this.unreadCount,
this.width = 22.0,
this.height = 22.0})
: super(key: key);
String generateUnreadText() =>
unreadCount > 99 ? '99+' : unreadCount.toString();
double generateFontSize(String text) => text.length * -2 + 13;
@override
Widget tuiBuild(BuildContext context, TUIKitBuildValue value) {
final TUITheme theme = value.theme;
final unreadText = generateUnreadText();
final fontSize = generateFontSize(unreadText);
return Container(
width: width,
height: height,
alignment: Alignment.center,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: theme.conversationItemUnreadCountBgColor ??
CommonColor.cautionColor,
),
child: unreadText != "0"
? Center(
child: Text(
unreadText,
style: TextStyle(
color: theme.conversationItemUnreadCountTextColor,
fontSize: fontSize,
),
),
)
: null,
);
}
}