Files
tongxunruanjian/mobile-next/openim_common/lib/src/widgets/chat/chat_bubble.dart
T

43 lines
1.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:openim_common/openim_common.dart';
enum BubbleType {
send,
receiver,
}
class ChatBubble extends StatelessWidget {
const ChatBubble({
Key? key,
this.margin,
this.constraints,
this.alignment = Alignment.center,
this.backgroundColor,
this.child,
required this.bubbleType,
}) : super(key: key);
final EdgeInsetsGeometry? margin;
final BoxConstraints? constraints;
final AlignmentGeometry? alignment;
final Color? backgroundColor;
final Widget? child;
final BubbleType bubbleType;
bool get isISend => bubbleType == BubbleType.send;
@override
Widget build(BuildContext context) => Container(
constraints: constraints,
margin: margin,
padding: EdgeInsets.symmetric(horizontal: 12.w, vertical: 10.h),
alignment: alignment,
decoration: BoxDecoration(
color:
backgroundColor ?? (isISend ? Styles.c_CCE7FE : Styles.c_FFFFFF),
borderRadius: borderRadius(isISend),
),
child: child,
);
}