TF-460 Separate the header of MailboxDashboard on the browser
This commit is contained in:
@@ -106,64 +106,24 @@ class MailboxController extends BaseMailboxController {
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
mailboxDashBoardController.accountId.listen((accountId) {
|
||||
if (accountId != null) {
|
||||
getAllMailboxAction(accountId);
|
||||
}
|
||||
});
|
||||
_onMailboxDashBoardListener();
|
||||
super.onInit();
|
||||
}
|
||||
|
||||
@override
|
||||
void onReady() {
|
||||
super.onReady();
|
||||
mailboxDashBoardController.viewState.listen((state) {
|
||||
state.fold(
|
||||
(failure) {
|
||||
if (failure is EmptyTrashFolderFailure) {
|
||||
mailboxDashBoardController.clearState();
|
||||
refreshMailboxChanges();
|
||||
}
|
||||
},
|
||||
(success) {
|
||||
if (success is MarkAsMultipleEmailReadAllSuccess
|
||||
|| success is MarkAsMultipleEmailReadHasSomeEmailFailure) {
|
||||
mailboxDashBoardController.clearState();
|
||||
refreshMailboxChanges();
|
||||
} else if (success is MoveMultipleEmailToMailboxAllSuccess
|
||||
|| success is MoveMultipleEmailToMailboxHasSomeEmailFailure) {
|
||||
mailboxDashBoardController.clearState();
|
||||
refreshMailboxChanges();
|
||||
} else if (success is DeleteMultipleEmailsPermanentlyAllSuccess
|
||||
|| success is DeleteMultipleEmailsPermanentlyHasSomeEmailFailure) {
|
||||
mailboxDashBoardController.clearState();
|
||||
refreshMailboxChanges();
|
||||
} else if (success is EmptyTrashFolderSuccess) {
|
||||
mailboxDashBoardController.clearState();
|
||||
refreshMailboxChanges();
|
||||
} else if (success is MarkAsEmailReadSuccess
|
||||
|| success is MoveToMailboxSuccess
|
||||
|| success is DeleteEmailPermanentlySuccess
|
||||
|| success is SaveEmailAsDraftsSuccess
|
||||
|| success is RemoveEmailDraftsSuccess
|
||||
|| success is SendEmailSuccess
|
||||
|| success is UpdateEmailDraftsSuccess) {
|
||||
refreshMailboxChanges();
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
_openMailboxEventController.stream.throttleTime(const Duration(milliseconds: 800)).listen((event) {
|
||||
_openMailboxEventController.stream.throttleTime(Duration(milliseconds: 800)).listen((event) {
|
||||
_handleOpenMailbox(event.buildContext, event.presentationMailbox);
|
||||
});
|
||||
|
||||
_initCollapseMailboxCategories();
|
||||
super.onReady();
|
||||
}
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
mailboxDashBoardController.accountId.close();
|
||||
mailboxDashBoardController.viewState.close();
|
||||
searchInputController.dispose();
|
||||
searchFocus.dispose();
|
||||
super.onClose();
|
||||
@@ -216,6 +176,50 @@ class MailboxController extends BaseMailboxController {
|
||||
@override
|
||||
void onError(error) {}
|
||||
|
||||
void _onMailboxDashBoardListener() {
|
||||
mailboxDashBoardController.accountId.listen((accountId) {
|
||||
log('MailboxController::_onMailboxDashBoardListener(): accountId: $accountId');
|
||||
if (accountId != null) {
|
||||
getAllMailboxAction(accountId);
|
||||
}
|
||||
});
|
||||
|
||||
mailboxDashBoardController.viewState.listen((state) {
|
||||
log('MailboxController::_onMailboxDashBoardListener(): viewState: $viewState');
|
||||
state.fold((failure) {
|
||||
if (failure is EmptyTrashFolderFailure) {
|
||||
mailboxDashBoardController.clearState();
|
||||
refreshMailboxChanges();
|
||||
}
|
||||
}, (success) {
|
||||
if (success is MarkAsMultipleEmailReadAllSuccess ||
|
||||
success is MarkAsMultipleEmailReadHasSomeEmailFailure) {
|
||||
mailboxDashBoardController.clearState();
|
||||
refreshMailboxChanges();
|
||||
} else if (success is MoveMultipleEmailToMailboxAllSuccess ||
|
||||
success is MoveMultipleEmailToMailboxHasSomeEmailFailure) {
|
||||
mailboxDashBoardController.clearState();
|
||||
refreshMailboxChanges();
|
||||
} else if (success is DeleteMultipleEmailsPermanentlyAllSuccess ||
|
||||
success is DeleteMultipleEmailsPermanentlyHasSomeEmailFailure) {
|
||||
mailboxDashBoardController.clearState();
|
||||
refreshMailboxChanges();
|
||||
} else if (success is EmptyTrashFolderSuccess) {
|
||||
mailboxDashBoardController.clearState();
|
||||
refreshMailboxChanges();
|
||||
} else if (success is MarkAsEmailReadSuccess ||
|
||||
success is MoveToMailboxSuccess ||
|
||||
success is DeleteEmailPermanentlySuccess ||
|
||||
success is SaveEmailAsDraftsSuccess ||
|
||||
success is RemoveEmailDraftsSuccess ||
|
||||
success is SendEmailSuccess ||
|
||||
success is UpdateEmailDraftsSuccess) {
|
||||
refreshMailboxChanges();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
void _initCollapseMailboxCategories() {
|
||||
if (currentContext != null) {
|
||||
if (kIsWeb && (_responsiveUtils.isMobile(currentContext!)) || _responsiveUtils.isTablet(currentContext!)) {
|
||||
|
||||
@@ -25,11 +25,12 @@ class MailboxView extends GetWidget<MailboxController> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Drawer(
|
||||
elevation: _responsiveUtils.isDesktop(context) ? 0 : 16.0,
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
body: Column(
|
||||
children: [
|
||||
_buildLogoApp(context),
|
||||
if (!_responsiveUtils.isDesktop(context)) _buildLogoApp(context),
|
||||
if (!_responsiveUtils.isDesktop(context)) const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2),
|
||||
Expanded(child: Container(
|
||||
padding: EdgeInsets.zero,
|
||||
@@ -75,7 +76,7 @@ class MailboxView extends GetWidget<MailboxController> {
|
||||
bottom: _responsiveUtils.isDesktop(context) ? 25 : 16,
|
||||
left: _responsiveUtils.isDesktop(context) ? 32 : 16),
|
||||
child: Row(children: [
|
||||
(SloganBuilder(arrangedByHorizontal: true)
|
||||
(SloganBuilder(arrangedByHorizontal: true)
|
||||
..setSloganText(AppLocalizations.of(context).app_name)
|
||||
..setSloganTextAlign(TextAlign.center)
|
||||
..setSloganTextStyle(const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold))
|
||||
|
||||
@@ -65,7 +65,7 @@ class UserInformationWidgetBuilder {
|
||||
child: TextButton(
|
||||
onPressed: () => _onLogoutActionClick?.call(),
|
||||
child: Text(
|
||||
AppLocalizations.of(_context).logout,
|
||||
AppLocalizations.of(_context).manage_account,
|
||||
style: const TextStyle(fontSize: 14, color: AppColor.colorTextButton),
|
||||
),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user