build method

  1. @override
dynamic build(
  1. dynamic context,
  2. 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,
              ),
            ),
    ],
  );
}