Fix email content loaded after 10s
This commit is contained in:
@@ -2,13 +2,7 @@ import 'package:core/core.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
|
||||||
class GetEmailContentLoading extends UIState {
|
class GetEmailContentLoading extends LoadingState {}
|
||||||
|
|
||||||
GetEmailContentLoading();
|
|
||||||
|
|
||||||
@override
|
|
||||||
List<Object> get props => [];
|
|
||||||
}
|
|
||||||
|
|
||||||
class GetEmailContentSuccess extends UIState {
|
class GetEmailContentSuccess extends UIState {
|
||||||
final List<EmailContent> emailContents;
|
final List<EmailContent> emailContents;
|
||||||
|
|||||||
@@ -142,7 +142,8 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _initWorker() {
|
void _initWorker() {
|
||||||
emailWorker = ever( mailboxDashBoardController.selectedEmail, (presentationEmail) {
|
emailWorker = ever(mailboxDashBoardController.selectedEmail, (presentationEmail) {
|
||||||
|
log('EmailController::_initWorker(): $presentationEmail');
|
||||||
if (presentationEmail is PresentationEmail) {
|
if (presentationEmail is PresentationEmail) {
|
||||||
if (_currentEmailId != presentationEmail.id) {
|
if (_currentEmailId != presentationEmail.id) {
|
||||||
_currentEmailId = presentationEmail.id;
|
_currentEmailId = presentationEmail.id;
|
||||||
@@ -927,6 +928,7 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
void closeEmailView(BuildContext context) {
|
void closeEmailView(BuildContext context) {
|
||||||
mailboxDashBoardController.clearSelectedEmail();
|
mailboxDashBoardController.clearSelectedEmail();
|
||||||
_currentEmailId = null;
|
_currentEmailId = null;
|
||||||
|
_resetToOriginalValue();
|
||||||
if (mailboxDashBoardController.searchController.isSearchEmailRunning) {
|
if (mailboxDashBoardController.searchController.isSearchEmailRunning) {
|
||||||
if (responsiveUtils.isWebDesktop(context)) {
|
if (responsiveUtils.isWebDesktop(context)) {
|
||||||
mailboxDashBoardController.dispatchRoute(DashboardRoutes.thread);
|
mailboxDashBoardController.dispatchRoute(DashboardRoutes.thread);
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import 'package:get/get.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/prefix_email_address_extension.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/extensions/prefix_email_address_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/state/get_email_content_state.dart';
|
|
||||||
import 'package:tmail_ui_user/features/email/presentation/email_controller.dart';
|
import 'package:tmail_ui_user/features/email/presentation/email_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_widget_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_widget_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_file_tile_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_file_tile_builder.dart';
|
||||||
@@ -55,6 +54,7 @@ class EmailView extends GetWidget<EmailController> {
|
|||||||
: const BoxDecoration(color: Colors.white),
|
: const BoxDecoration(color: Colors.white),
|
||||||
margin: _getMarginEmailView(context),
|
margin: _getMarginEmailView(context),
|
||||||
child: Obx(() {
|
child: Obx(() {
|
||||||
|
log('EmailView::_buildLoadingView(): ${controller.currentEmail}');
|
||||||
if (controller.currentEmail != null) {
|
if (controller.currentEmail != null) {
|
||||||
return _buildEmailView(context, controller.currentEmail!);
|
return _buildEmailView(context, controller.currentEmail!);
|
||||||
} else {
|
} else {
|
||||||
@@ -286,24 +286,21 @@ class EmailView extends GetWidget<EmailController> {
|
|||||||
|
|
||||||
Widget _buildLoadingView() {
|
Widget _buildLoadingView() {
|
||||||
return Obx(() {
|
return Obx(() {
|
||||||
if (controller.emailContents.isEmpty) {
|
return controller.viewState.value.fold(
|
||||||
return controller.viewState.value.fold(
|
(failure) => const SizedBox.shrink(),
|
||||||
(failure) => const SizedBox.shrink(),
|
(success) {
|
||||||
(success) {
|
log('EmailView::_buildLoadingView(): $success');
|
||||||
if (success is GetEmailContentLoading) {
|
if (success is LoadingState) {
|
||||||
return const Align(alignment: Alignment.topCenter, child: Padding(
|
return const Align(alignment: Alignment.topCenter, child: Padding(
|
||||||
padding: EdgeInsets.all(16),
|
padding: EdgeInsets.all(16),
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
width: 30,
|
width: 30,
|
||||||
height: 30,
|
height: 30,
|
||||||
child: CupertinoActivityIndicator(color: AppColor.colorLoading))));
|
child: CupertinoActivityIndicator(color: AppColor.colorLoading))));
|
||||||
} else {
|
} else {
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
return const SizedBox.shrink();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'package:core/core.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/core/state.dart';
|
import 'package:jmap_dart_client/jmap/core/state.dart';
|
||||||
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
||||||
|
|
||||||
class GetAllIdentitiesLoading extends UIState {}
|
class GetAllIdentitiesLoading extends LoadingState {}
|
||||||
|
|
||||||
class GetAllIdentitiesSuccess extends UIState {
|
class GetAllIdentitiesSuccess extends UIState {
|
||||||
final List<Identity>? identities;
|
final List<Identity>? identities;
|
||||||
|
|||||||
Reference in New Issue
Block a user