Files
workavia-mail-front/lib/features/thread/domain/model/search_emails_response.dart
T

35 lines
1.1 KiB
Dart

import 'package:jmap_dart_client/jmap/mail/email/search_snippet/search_snippet.dart';
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_email.dart';
class SearchEmailsResponse extends EmailsResponse {
const SearchEmailsResponse({
super.emailList,
super.state,
required this.searchSnippets,
});
final List<SearchSnippet>? searchSnippets;
@override
List<Object?> get props => [...super.props, searchSnippets];
List<SearchEmail>? get toSearchEmails {
if (searchSnippets == null) {
return emailList?.map(SearchEmail.fromEmail).toList();
}
final mapSearchSnippet = Map.fromEntries(
searchSnippets!.map((searchSnippet) => MapEntry(
searchSnippet.emailId,
searchSnippet)));
return emailList?.map((email) {
final searchSnippet = mapSearchSnippet[email.id];
return SearchEmail.fromEmail(
email,
searchSnippetSubject: searchSnippet?.subject,
searchSnippetPreview: searchSnippet?.preview);
}).toList();
}
}