formattedLastMessage method

String formattedLastMessage({
  1. String? sender,
  2. bool isTyping = false,
  3. String formatter(
    1. String key,
    2. String value
    )?,
})

Implementation

String formattedLastMessage({
  String? sender,
  bool isTyping = false,
  String Function(String key, String value)? formatter,
}) {
  if (isTyping) return 'Typing...';

  final isMe = lastMessageSenderId == me;

  if (isMe && lastMessageStatus == MessageStatus.sending.name) {
    return 'Sending...';
  }

  final resolvedSender = sender ?? '';

  if (lastMessageDeleted) {
    return '${isMe ? 'You' : resolvedSender} deleted a message';
  }

  String msg = lastMessage ?? '';

  if (formatter != null) {
    if (msg.contains('{SENDER_OR_EMPTY}')) {
      msg = formatter('{SENDER_OR_EMPTY}', msg);
    }
    if (msg.contains('{SENDER}')) {
      msg = formatter('{SENDER}', msg);
    }
    return msg;
  }

  return msg
      .replaceAll('{SENDER_OR_EMPTY}', isMe ? 'You: ' : '')
      .replaceAll('{SENDER}', isMe ? 'You' : resolvedSender);
}