mappedMessagesProvider top-level property

AutoDisposeProvider<List<QMessage>> mappedMessagesProvider
final

Implementation

final mappedMessagesProvider = Provider.autoDispose<List<QMessage>>((ref) {
  var messages = ref.watch(sortedMessagesProvider);
  var showSystemMessage = ref.watch(systemEventVisibleConfigProvider);

  return messages.map((it) {
    QMessage? message;

    message ??= QMessageSystem.tryParse(it);
    message ??= QMessageImage.tryParse(it);
    message ??= QMessageVideo.tryParse(it);
    message ??= QMessageFile.tryParse(it);
    // Not yet mature
    message ??= QMessageButton.tryParse(it);
    message ??= QMessageCarousel.tryParse(it);
    message ??= QMessageReply.tryParse(it);
    message ??= it;

    return message;
  }).where((m) {
    if (m is QMessageSystem) return showSystemMessage;
    return true;
  }).toList();
});