TF-3698 Thread Detail Real time update

TF-3698 Thread Detail update reset RefreshThreadDetailAction position

TF-3698 Thread Detail refactor initializeThreadDetailEmails

TF-3698 Thread Detail refactor handleRefreshThreadDetailAction

TF-3698 Thread Detail create listThreadIds in ListEmailExtension
This commit is contained in:
DatDang
2025-05-27 11:03:28 +07:00
committed by Dat H. Pham
parent 1bc45e35f3
commit d210a892f2
28 changed files with 647 additions and 83 deletions
@@ -2,16 +2,19 @@
import 'package:equatable/equatable.dart';
import 'package:jmap_dart_client/jmap/core/state.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:tmail_ui_user/features/thread/data/model/email_change_response.dart';
class EmailsResponse with EquatableMixin {
final List<Email>? emailList;
final List<EmailId>? notFoundEmailIds;
final State? state;
final EmailChangeResponse? emailChangeResponse;
const EmailsResponse({
this.emailList,
this.notFoundEmailIds,
this.state
this.state,
this.emailChangeResponse,
});
bool hasEmails() => emailList != null && emailList!.isNotEmpty;
@@ -21,5 +24,24 @@ class EmailsResponse with EquatableMixin {
bool get existNotFoundEmails => notFoundEmailIds?.isNotEmpty == true;
@override
List<Object?> get props => [emailList, notFoundEmailIds, state];
List<Object?> get props => [
emailList,
notFoundEmailIds,
state,
emailChangeResponse,
];
EmailsResponse copyWith({
List<Email>? emailList,
List<EmailId>? notFoundEmailIds,
State? state,
EmailChangeResponse? emailChangeResponse,
}) {
return EmailsResponse(
emailList: emailList ?? this.emailList,
notFoundEmailIds: notFoundEmailIds ?? this.notFoundEmailIds,
state: state ?? this.state,
emailChangeResponse: emailChangeResponse ?? this.emailChangeResponse,
);
}
}