TF-868: Unread/new emails are not loaded when opening folder

This commit is contained in:
ManhNTX
2022-09-07 10:32:04 +07:00
committed by Dat H. Pham
parent c213892746
commit 98f297f24d
13 changed files with 152 additions and 75 deletions
@@ -5,12 +5,14 @@ import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
class GetEmailRequest with EquatableMixin {
final AccountId accountId;
final UnsignedInt? limit;
final Set<Comparator>? sort;
final Filter? filter;
final FilterMessageOption? filterOption;
final Properties? properties;
final EmailId? lastEmailId;
@@ -18,10 +20,11 @@ class GetEmailRequest with EquatableMixin {
this.limit,
this.sort,
this.filter,
this.filterOption,
this.properties,
this.lastEmailId,
});
@override
List<Object?> get props => [limit, sort, filter, properties, lastEmailId];
List<Object?> get props => [limit, sort, filter, properties, lastEmailId, filterOption];
}
@@ -1,7 +1,5 @@
import 'dart:async';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
@@ -12,9 +10,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart';
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart';
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart';
import 'package:dartz/dartz.dart' as dartz;
abstract class ThreadRepository {
Stream<EmailsResponse> getAllEmail(
@@ -33,10 +29,9 @@ abstract class ThreadRepository {
jmap.State currentState,
{
Set<Comparator>? sort,
EmailFilter? emailFilter,
Properties? propertiesCreated,
Properties? propertiesUpdated,
MailboxId? inMailboxId,
FilterMessageOption? filterOption,
}
);
@@ -3,9 +3,8 @@ import 'package:dartz/dartz.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart';
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart';
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart';
import 'package:model/model.dart';
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
@@ -23,8 +22,7 @@ class RefreshChangesEmailsInMailboxInteractor {
Set<Comparator>? sort,
Properties? propertiesCreated,
Properties? propertiesUpdated,
MailboxId? inMailboxId,
FilterMessageOption? filterOption,
EmailFilter? emailFilter,
}
) async* {
yield Right<Failure, Success>(RefreshingState());
@@ -37,8 +35,7 @@ class RefreshChangesEmailsInMailboxInteractor {
sort: sort,
propertiesCreated: propertiesCreated,
propertiesUpdated: propertiesUpdated,
inMailboxId: inMailboxId,
filterOption: filterOption)
emailFilter: emailFilter)
.map(_toGetEmailState);
} catch (e) {
yield Left(RefreshChangesAllEmailFailure(e));