build method

  1. @override
dynamic build(
  1. dynamic context
)

Implementation

@override
Widget build(BuildContext context) {
  // state event
  switch (message.metadata?['eventType']) {
    case 'm.room.encrypted':
      return const EncryptedMessageWidget();
    case 'm.room.member':
      return MembershipUpdateWidget(message: message);
    case 'm.room.message':
      if (message.metadata?['msgType'] == 'm.location') {
        return LocationMessageWidget(message: message);
      }
      _log.warning(
        'Asked to render room message that isn’t a location isn’t supported. $message',
      );
      return const SizedBox.shrink();
    case 'm.room.redaction':
      return const RedactedMessageWidget();
    case 'm.sticker':
      return StickerMessageWidget(
        message: message,
        messageWidth: messageWidth,
      );
    case 'm.poll.start':
      return PollStartMessageWidget(message: message);
    case 'm.policy.rule.room':
    case 'm.policy.rule.server':
    case 'm.policy.rule.user':
    case 'm.room.aliases':
    case 'm.room.avatar':
    case 'm.room.canonical_alias':
    case 'm.room.create':
    case 'm.room.encryption':
    case 'm.room.guest.access':
    case 'm.room.history_visibility':
    case 'm.room.join.rules':
    case 'm.room.name':
    case 'm.room.pinned_events':
    case 'm.room.power_levels':
    case 'm.room.server_acl':
    case 'm.room.third_party_invite':
    case 'm.room.tombstone':
    case 'm.room.topic':
    case 'm.space.child':
    case 'm.space.parent':
      return SimpleStateUpdateWidget(message: message);
  }

  _log.warning('Asked to render an unsupported custom message $message');
  return const SizedBox();
}