TF-1865: Remove icon svg not use
(cherry picked from commit e5f8b11fd2c2b4ae793e74051a1e78ede710b2be)
This commit is contained in:
@@ -1,14 +0,0 @@
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
|
||||
extension SendingEmailExtension on List<SendingEmail> {
|
||||
List<PresentationEmail> toPresentationEmailList() {
|
||||
return map((sendingEmail) => sendingEmail.email.sendingEmailToPresentationEmail(
|
||||
emailId: EmailId(Id(sendingEmail.sendingId)),
|
||||
createAt: UTCDate(sendingEmail.createTime)
|
||||
)).toList();
|
||||
}
|
||||
}
|
||||
@@ -226,16 +226,21 @@ class EmailRepositoryImpl extends EmailRepository {
|
||||
Future<void> storeSendingEmail(
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
SendingEmail sendingEmail,
|
||||
bool isUpdateSendingEmail
|
||||
) async {
|
||||
if (isUpdateSendingEmail) {
|
||||
return await emailDataSource[DataSourceType.hiveCache]!.updateSendingEmail(accountId, userName, sendingEmail);
|
||||
} else {
|
||||
return await emailDataSource[DataSourceType.hiveCache]!.storeSendingEmail(accountId, userName, sendingEmail);
|
||||
}
|
||||
SendingEmail sendingEmail
|
||||
) {
|
||||
return emailDataSource[DataSourceType.hiveCache]!.storeSendingEmail(accountId, userName, sendingEmail);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> updateSendingEmail(
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
SendingEmail sendingEmail
|
||||
) async {
|
||||
return emailDataSource[DataSourceType.hiveCache]!.updateSendingEmail(accountId, userName, sendingEmail);
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
Future<void> deleteSendingEmail(AccountId accountId, UserName userName, String sendingId) {
|
||||
return emailDataSource[DataSourceType.hiveCache]!.deleteSendingEmail(accountId, userName, sendingId);
|
||||
|
||||
@@ -102,7 +102,9 @@ abstract class EmailRepository {
|
||||
|
||||
Future<DetailedEmail?> getOpenedEmail(Session session, AccountId accountId, EmailId emailId);
|
||||
|
||||
Future<void> storeSendingEmail(AccountId accountId, UserName userName, SendingEmail sendingEmail, bool isUpdateSendingEmail);
|
||||
Future<void> storeSendingEmail(AccountId accountId, UserName userName, SendingEmail sendingEmail);
|
||||
|
||||
Future<void> updateSendingEmail(AccountId accountId, UserName userName, SendingEmail sendingEmail);
|
||||
|
||||
Future<void> deleteSendingEmail(AccountId accountId, UserName userName, String sendingId);
|
||||
}
|
||||
@@ -8,9 +8,8 @@ class StoreSendingEmailLoading extends UIState {}
|
||||
class StoreSendingEmailSuccess extends UIState {
|
||||
|
||||
final SendingEmail sendingEmail;
|
||||
final bool isUpdateSendingEmail;
|
||||
|
||||
StoreSendingEmailSuccess(this.sendingEmail, this.isUpdateSendingEmail);
|
||||
StoreSendingEmailSuccess(this.sendingEmail);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [sendingEmail];
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
|
||||
class UpdateSendingEmailLoading extends UIState {}
|
||||
|
||||
class UpdateSendingEmailSuccess extends UIState {
|
||||
|
||||
final SendingEmail sendingEmail;
|
||||
|
||||
UpdateSendingEmailSuccess(this.sendingEmail);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [sendingEmail];
|
||||
}
|
||||
|
||||
class UpdateSendingEmailFailure extends FeatureFailure {
|
||||
UpdateSendingEmailFailure(dynamic exception) : super(exception: exception);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [exception];
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/store_sending_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/update_sending_email_state.dart';
|
||||
|
||||
class StoreSendingEmailInteractor {
|
||||
final EmailRepository _emailRepository;
|
||||
@@ -16,14 +16,13 @@ class StoreSendingEmailInteractor {
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
SendingEmail sendingEmail,
|
||||
bool isUpdateSendingEmail
|
||||
) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(StoreSendingEmailLoading());
|
||||
await _emailRepository.storeSendingEmail(accountId, userName, sendingEmail, isUpdateSendingEmail);
|
||||
yield Right<Failure, Success>(StoreSendingEmailSuccess(sendingEmail, isUpdateSendingEmail));
|
||||
yield Right<Failure, Success>(UpdateSendingEmailLoading());
|
||||
await _emailRepository.storeSendingEmail(accountId, userName, sendingEmail);
|
||||
yield Right<Failure, Success>(UpdateSendingEmailSuccess(sendingEmail));
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(StoreSendingEmailFailure(e));
|
||||
yield Left<Failure, Success>(UpdateSendingEmailFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/store_sending_email_state.dart';
|
||||
|
||||
class UpdateSendingEmailInteractor {
|
||||
final EmailRepository _emailRepository;
|
||||
|
||||
UpdateSendingEmailInteractor(this._emailRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
SendingEmail sendingEmail,
|
||||
) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(StoreSendingEmailLoading());
|
||||
await _emailRepository.updateSendingEmail(accountId, userName, sendingEmail);
|
||||
yield Right<Failure, Success>(StoreSendingEmailSuccess(sendingEmail));
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(StoreSendingEmailFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
+46
-20
@@ -34,6 +34,7 @@ import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts
|
||||
import 'package:tmail_ui_user/features/composer/domain/usecases/send_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/model/sending_email_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/store_sending_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/update_sending_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_sending_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/composer_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
|
||||
@@ -332,6 +333,8 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
_handleStoreSendingEmailSuccess(success);
|
||||
} else if (success is GetAllSendingEmailSuccess) {
|
||||
_handleGetAllSendingEmailsSuccess(success);
|
||||
} else if (success is UpdateSendingEmailSuccess) {
|
||||
_handleUpdateSendingEmailSuccess(success);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1767,7 +1770,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
if (currentContext != null && isUpdateSendingEmail == false) {
|
||||
_showActionSendingEmail(session, accountId, emailRequest, mailboxRequest);
|
||||
} else {
|
||||
_handleStoreSendingEmail(session, accountId, emailRequest, mailboxRequest, isUpdateSendingEmail: isUpdateSendingEmail);
|
||||
_handleUpdateSendingEmail(session, accountId, emailRequest, mailboxRequest);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -1785,14 +1788,27 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
AccountId accountId,
|
||||
EmailRequest emailRequest,
|
||||
CreateNewMailboxRequest? mailboxRequest,
|
||||
{bool? isUpdateSendingEmail = false}
|
||||
) {
|
||||
final currentEmailId = emailRequest.email.id?.id.value;
|
||||
final sendingEmail = emailRequest.toSendingEmail(
|
||||
emailRequest.email.id != null ? currentEmailId! : _uuid.v1(),
|
||||
mailboxRequest: mailboxRequest
|
||||
);
|
||||
_storeSendingEmail(accountId, session.username, sendingEmail, isUpdateSendingEmail: isUpdateSendingEmail);
|
||||
_storeSendingEmail(accountId, session.username, sendingEmail);
|
||||
}
|
||||
|
||||
void _handleUpdateSendingEmail(
|
||||
Session session,
|
||||
AccountId accountId,
|
||||
EmailRequest emailRequest,
|
||||
CreateNewMailboxRequest? mailboxRequest,
|
||||
) {
|
||||
final currentEmailId = emailRequest.email.id?.id.value;
|
||||
final sendingEmail = emailRequest.toSendingEmail(
|
||||
emailRequest.email.id != null ? currentEmailId! : _uuid.v1(),
|
||||
mailboxRequest: mailboxRequest
|
||||
);
|
||||
_updateSendingEmail(accountId, session.username, sendingEmail);
|
||||
}
|
||||
|
||||
void _showActionSendingEmail(
|
||||
@@ -1844,34 +1860,44 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
SendingEmail sendingEmail,
|
||||
{bool? isUpdateSendingEmail}
|
||||
) {
|
||||
log('MailboxDashBoardController::_storeSendingEmail():sendingEmail: $sendingEmail');
|
||||
consumeState(_storeSendingEmailInteractor.execute(
|
||||
accountId,
|
||||
userName,
|
||||
sendingEmail,
|
||||
isUpdateSendingEmail ?? false));
|
||||
sendingEmail));
|
||||
}
|
||||
|
||||
void _updateSendingEmail(
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
SendingEmail sendingEmail
|
||||
) {
|
||||
log('MailboxDashBoardController::_storeSendingEmail():sendingEmail: $sendingEmail');
|
||||
consumeState(_storeSendingEmailInteractor.execute(
|
||||
accountId,
|
||||
userName,
|
||||
sendingEmail));
|
||||
}
|
||||
|
||||
void _handleStoreSendingEmailSuccess(StoreSendingEmailSuccess success) async {
|
||||
if (success.isUpdateSendingEmail) {
|
||||
_cancelSendingEmailToSendingQueue(success.sendingEmail);
|
||||
_addSendingEmailToSendingQueue(success.sendingEmail);
|
||||
getAllSendingEmails();
|
||||
} else {
|
||||
_addSendingEmailToSendingQueue(success.sendingEmail);
|
||||
getAllSendingEmails();
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastSuccessMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).messageHasBeenSavedToTheSendingQueue,
|
||||
leadingSVGIconColor: Colors.white,
|
||||
leadingSVGIcon: _imagePaths.icEmail);
|
||||
}
|
||||
_addSendingEmailToSendingQueue(success.sendingEmail);
|
||||
getAllSendingEmails();
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastSuccessMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).messageHasBeenSavedToTheSendingQueue,
|
||||
leadingSVGIconColor: Colors.white,
|
||||
leadingSVGIcon: _imagePaths.icEmail);
|
||||
}
|
||||
}
|
||||
|
||||
void _handleUpdateSendingEmailSuccess(UpdateSendingEmailSuccess success) async {
|
||||
_cancelSendingEmailToSendingQueue(success.sendingEmail);
|
||||
_addSendingEmailToSendingQueue(success.sendingEmail);
|
||||
getAllSendingEmails();
|
||||
}
|
||||
|
||||
void _cancelSendingEmailToSendingQueue(SendingEmail sendingEmail) async {
|
||||
try {
|
||||
await WorkSchedulerController().cancelByUniqueId(sendingEmail.sendingId);
|
||||
|
||||
@@ -112,7 +112,9 @@ class SendingQueueController extends BaseController with MessageDialogActionMixi
|
||||
_deleteSendingEmailAction(context, listSendingEmails);
|
||||
break;
|
||||
case SendingEmailActionType.edit:
|
||||
_editSendingEmailAction(listSendingEmails.first);
|
||||
if (dashboardController?.networkConnectionController.isNetworkConnectionAvailable() == false) {
|
||||
_editSendingEmailAction(listSendingEmails.first);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user