build method
dynamic
build( - dynamic context,
- dynamic ref
)
Implementation
@override
Widget build(BuildContext context, WidgetRef ref) {
final myId = ref.watch(myUserIdStrProvider);
final isAuthor = (myId == message.author.id);
final inputNotifier = ref.read(chatInputProvider.notifier);
String? eventType = message.metadata?['eventType'];
bool isMemberEvent = eventType == 'm.room.member';
bool redactedOrEncrypted = (message is types.CustomMessage) &&
(eventType == 'm.room.redaction' || eventType == 'm.room.encrypted');
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
isMemberEvent
? child
: SwipeTo(
onRightSwipe: redactedOrEncrypted
? null
: (DragUpdateDetails details) {
inputNotifier.setReplyToMessage(message);
},
iconOnRightSwipe: Icons.reply_rounded,
onLeftSwipe: redactedOrEncrypted
? null
: isAuthor
? (DragUpdateDetails details) {
inputNotifier.setEditMessage(message);
}
: null,
iconOnLeftSwipe: Atlas.pencil_edit_thin,
child: _ChatBubble(
roomId: roomId,
message: message,
nextMessageInGroup: nextMessageInGroup,
enlargeEmoji: enlargeEmoji,
child: child,
),
),
],
);
}