TF-168 [BUG] Hiding all view components without when login implementation
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import 'package:core/presentation/extensions/color_extension.dart';
|
import 'package:core/presentation/extensions/color_extension.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
// import 'package:flutter_svg/flutter_svg.dart';
|
||||||
|
|
||||||
typedef OnTapAvatarActionClick = void Function();
|
typedef OnTapAvatarActionClick = void Function();
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ class AvatarBuilder {
|
|||||||
Key? _key;
|
Key? _key;
|
||||||
String? _text;
|
String? _text;
|
||||||
double? _size;
|
double? _size;
|
||||||
String? _iconStatus;
|
// String? _iconStatus;
|
||||||
Color? _bgColor;
|
Color? _bgColor;
|
||||||
OnTapAvatarActionClick? _onTapAvatarActionClick;
|
OnTapAvatarActionClick? _onTapAvatarActionClick;
|
||||||
|
|
||||||
@@ -27,10 +27,10 @@ class AvatarBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
AvatarBuilder iconStatus(String iconStatus) {
|
// AvatarBuilder iconStatus(String iconStatus) {
|
||||||
_iconStatus = iconStatus;
|
// _iconStatus = iconStatus;
|
||||||
return this;
|
// return this;
|
||||||
}
|
// }
|
||||||
|
|
||||||
AvatarBuilder backgroundColor(Color bgColor) {
|
AvatarBuilder backgroundColor(Color bgColor) {
|
||||||
_bgColor = bgColor;
|
_bgColor = bgColor;
|
||||||
@@ -66,10 +66,10 @@ class AvatarBuilder {
|
|||||||
child: Text(
|
child: Text(
|
||||||
'${_text ?? ''}',
|
'${_text ?? ''}',
|
||||||
style: TextStyle(fontSize: 20, color: AppColor.avatarTextColor, fontWeight: FontWeight.w500))),
|
style: TextStyle(fontSize: 20, color: AppColor.avatarTextColor, fontWeight: FontWeight.w500))),
|
||||||
if (_iconStatus != null && _iconStatus!.isNotEmpty)
|
// if (_iconStatus != null && _iconStatus!.isNotEmpty)
|
||||||
Align(
|
// Align(
|
||||||
child: SvgPicture.asset(_iconStatus!, width: 12, height: 12, fit: BoxFit.fill),
|
// child: SvgPicture.asset(_iconStatus!, width: 12, height: 12, fit: BoxFit.fill),
|
||||||
alignment: Alignment.bottomRight)
|
// alignment: Alignment.bottomRight)
|
||||||
],
|
],
|
||||||
)),
|
)),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -69,12 +69,12 @@ class TopBarComposerWidgetBuilder {
|
|||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
IconButton(
|
// IconButton(
|
||||||
key: Key('button_file_share'),
|
// key: Key('button_file_share'),
|
||||||
color: AppColor.baseTextColor,
|
// color: AppColor.baseTextColor,
|
||||||
icon: SvgPicture.asset(_imagePaths.icComposerFileShare, color: AppColor.baseTextColor, fit: BoxFit.fill),
|
// icon: SvgPicture.asset(_imagePaths.icComposerFileShare, color: AppColor.baseTextColor, fit: BoxFit.fill),
|
||||||
onPressed: () {}
|
// onPressed: () {}
|
||||||
),
|
// ),
|
||||||
IconButton(
|
IconButton(
|
||||||
key: Key('button_attachment'),
|
key: Key('button_attachment'),
|
||||||
color: AppColor.baseTextColor,
|
color: AppColor.baseTextColor,
|
||||||
@@ -98,12 +98,13 @@ class TopBarComposerWidgetBuilder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
IconButton(
|
SizedBox(width: 8)
|
||||||
key: Key('button_menu_composer'),
|
// IconButton(
|
||||||
color: AppColor.baseTextColor,
|
// key: Key('button_menu_composer'),
|
||||||
icon: SvgPicture.asset(_imagePaths.icComposerMenu, color: AppColor.baseTextColor, fit: BoxFit.fill),
|
// color: AppColor.baseTextColor,
|
||||||
onPressed: () {}
|
// icon: SvgPicture.asset(_imagePaths.icComposerMenu, color: AppColor.baseTextColor, fit: BoxFit.fill),
|
||||||
)
|
// onPressed: () {}
|
||||||
|
// )
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,14 +86,14 @@ class AppBarMailWidgetBuilder {
|
|||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
IconButton(
|
// IconButton(
|
||||||
color: AppColor.baseTextColor,
|
// color: AppColor.baseTextColor,
|
||||||
icon: SvgPicture.asset(_imagePaths.icTrash, color: AppColor.baseTextColor, fit: BoxFit.fill),
|
// icon: SvgPicture.asset(_imagePaths.icTrash, color: AppColor.baseTextColor, fit: BoxFit.fill),
|
||||||
onPressed: () {
|
// onPressed: () {
|
||||||
if (_onBackActionClick != null) {
|
// if (_onBackActionClick != null) {
|
||||||
_onBackActionClick!();
|
// _onBackActionClick!();
|
||||||
}
|
// }
|
||||||
}),
|
// }),
|
||||||
IconButton(
|
IconButton(
|
||||||
key: Key('button_mark_as_unread_email'),
|
key: Key('button_mark_as_unread_email'),
|
||||||
color: AppColor.baseTextColor,
|
color: AppColor.baseTextColor,
|
||||||
|
|||||||
+1
-1
@@ -48,7 +48,7 @@ class SenderAndReceiverInformationTileBuilder {
|
|||||||
child: AvatarBuilder()
|
child: AvatarBuilder()
|
||||||
.text('${_presentationEmail!.getAvatarText()}')
|
.text('${_presentationEmail!.getAvatarText()}')
|
||||||
.size(40)
|
.size(40)
|
||||||
.iconStatus(_imagePaths.icOffline)
|
// .iconStatus(_imagePaths.icOffline)
|
||||||
.build()),
|
.build()),
|
||||||
title: Transform(
|
title: Transform(
|
||||||
transform: Matrix4.translationValues(-15.0, 0.0, 0.0),
|
transform: Matrix4.translationValues(-15.0, 0.0, 0.0),
|
||||||
|
|||||||
@@ -1,38 +1,3 @@
|
|||||||
// LinShare is an open source filesharing software, part of the LinPKI software
|
|
||||||
// suite, developed by Linagora.
|
|
||||||
//
|
|
||||||
// Copyright (C) 2020 LINAGORA
|
|
||||||
//
|
|
||||||
// This program is free software: you can redistribute it and/or modify it under the
|
|
||||||
// terms of the GNU Affero General Public License as published by the Free Software
|
|
||||||
// Foundation, either version 3 of the License, or (at your option) any later version,
|
|
||||||
// provided you comply with the Additional Terms applicable for LinShare software by
|
|
||||||
// Linagora pursuant to Section 7 of the GNU Affero General Public License,
|
|
||||||
// subsections (b), (c), and (e), pursuant to which you must notably (i) retain the
|
|
||||||
// display in the interface of the “LinShare™” trademark/logo, the "Libre & Free" mention,
|
|
||||||
// the words “You are using the Free and Open Source version of LinShare™, powered by
|
|
||||||
// Linagora © 2009–2020. Contribute to Linshare R&D by subscribing to an Enterprise
|
|
||||||
// offer!”. You must also retain the latter notice in all asynchronous messages such as
|
|
||||||
// e-mails sent with the Program, (ii) retain all hypertext links between LinShare and
|
|
||||||
// http://www.linshare.org, between linagora.com and Linagora, and (iii) refrain from
|
|
||||||
// infringing Linagora intellectual property rights over its trademarks and commercial
|
|
||||||
// brands. Other Additional Terms apply, see
|
|
||||||
// <http://www.linshare.org/licenses/LinShare-License_AfferoGPL-v3.pdf
|
|
||||||
//
|
|
||||||
// for more details.
|
|
||||||
// This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
||||||
// FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
|
|
||||||
// more details.
|
|
||||||
// You should have received a copy of the GNU Affero General Public License and its
|
|
||||||
// applicable Additional Terms for LinShare along with this program. If not, see
|
|
||||||
// <http://www.gnu.org/licenses
|
|
||||||
// for the GNU Affero General Public License version
|
|
||||||
//
|
|
||||||
// 3 and <http://www.linshare.org/licenses/LinShare-License_AfferoGPL-v3.pdf
|
|
||||||
// for
|
|
||||||
//
|
|
||||||
// the Additional Terms applicable to LinShare software.
|
|
||||||
|
|
||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ import 'package:get/get.dart';
|
|||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_button_new_folder_builder.dart';
|
// import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_button_new_folder_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_tile_builder.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_tile_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/search_form_widget_builder.dart';
|
// import 'package:tmail_ui_user/features/mailbox/presentation/widgets/search_form_widget_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/storage_widget_builder.dart';
|
// import 'package:tmail_ui_user/features/mailbox/presentation/widgets/storage_widget_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/user_information_widget_builder.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/user_information_widget_builder.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ class MailboxView extends GetWidget<MailboxController> {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
_buildHeaderMailbox(context),
|
_buildHeaderMailbox(context),
|
||||||
_buildSearchFormWidget(context),
|
// _buildSearchFormWidget(context),
|
||||||
_buildLoadingView(),
|
_buildLoadingView(),
|
||||||
_buildListMailbox(context)
|
_buildListMailbox(context)
|
||||||
]
|
]
|
||||||
@@ -54,7 +54,7 @@ class MailboxView extends GetWidget<MailboxController> {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)),
|
)),
|
||||||
bottomNavigationBar: responsiveUtils.isMobile(context) ? _buildStorageWidget(context) : null
|
// bottomNavigationBar: responsiveUtils.isMobile(context) ? _buildStorageWidget(context) : null
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -91,18 +91,18 @@ class MailboxView extends GetWidget<MailboxController> {
|
|||||||
return Padding(
|
return Padding(
|
||||||
padding: EdgeInsets.only(left: 16, top: 8.0, right: 16),
|
padding: EdgeInsets.only(left: 16, top: 8.0, right: 16),
|
||||||
child: Obx(() => UserInformationWidgetBuilder(
|
child: Obx(() => UserInformationWidgetBuilder(
|
||||||
imagePaths,
|
// imagePaths,
|
||||||
controller.mailboxDashBoardController.userProfile.value)
|
controller.mailboxDashBoardController.userProfile.value)
|
||||||
.build()));
|
.build()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildSearchFormWidget(BuildContext context) {
|
// Widget _buildSearchFormWidget(BuildContext context) {
|
||||||
return Padding(
|
// return Padding(
|
||||||
padding: EdgeInsets.only(top: 16, left: 16, right: 16),
|
// padding: EdgeInsets.only(top: 16, left: 16, right: 16),
|
||||||
child: SearchFormWidgetBuilder(context, imagePaths)
|
// child: SearchFormWidgetBuilder(context, imagePaths)
|
||||||
.onNewSearchQuery((searchQuery) => {})
|
// .onNewSearchQuery((searchQuery) => {})
|
||||||
.build());
|
// .build());
|
||||||
}
|
// }
|
||||||
|
|
||||||
Widget _buildLoadingView() {
|
Widget _buildLoadingView() {
|
||||||
return Obx(() => controller.viewState.value.fold(
|
return Obx(() => controller.viewState.value.fold(
|
||||||
@@ -135,16 +135,17 @@ class MailboxView extends GetWidget<MailboxController> {
|
|||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
style: TextStyle(fontSize: 12, color: AppColor.myFolderTitleColor, fontWeight: FontWeight.w500))
|
style: TextStyle(fontSize: 12, color: AppColor.myFolderTitleColor, fontWeight: FontWeight.w500))
|
||||||
),
|
),
|
||||||
Padding(
|
// Padding(
|
||||||
padding: EdgeInsets.only(
|
// padding: EdgeInsets.only(
|
||||||
left: 8,
|
// left: 8,
|
||||||
right: 16,
|
// right: 16,
|
||||||
top: 10),
|
// top: 10),
|
||||||
child: (MailboxNewFolderTileBuilder()
|
// child: (MailboxNewFolderTileBuilder()
|
||||||
..addIcon(imagePaths.icMailboxNewFolder)
|
// ..addIcon(imagePaths.icMailboxNewFolder)
|
||||||
..addName(AppLocalizations.of(context).new_folder))
|
// ..addName(AppLocalizations.of(context).new_folder))
|
||||||
.build()
|
// .build()
|
||||||
),
|
// ),
|
||||||
|
SizedBox(height: 10),
|
||||||
_buildFolderMailbox(context),
|
_buildFolderMailbox(context),
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
@@ -221,5 +222,5 @@ class MailboxView extends GetWidget<MailboxController> {
|
|||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildStorageWidget(BuildContext context) => StorageWidgetBuilder(context).build();
|
// Widget _buildStorageWidget(BuildContext context) => StorageWidgetBuilder(context).build();
|
||||||
}
|
}
|
||||||
@@ -3,18 +3,21 @@ import 'dart:ui';
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
// import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
|
||||||
typedef OnOpenUserInformationActionClick = void Function();
|
typedef OnOpenUserInformationActionClick = void Function();
|
||||||
|
|
||||||
class UserInformationWidgetBuilder {
|
class UserInformationWidgetBuilder {
|
||||||
final ImagePaths _imagePaths;
|
// final ImagePaths _imagePaths;
|
||||||
final UserProfile? _userProfile;
|
final UserProfile? _userProfile;
|
||||||
|
|
||||||
OnOpenUserInformationActionClick? _onOpenUserInformationActionClick;
|
OnOpenUserInformationActionClick? _onOpenUserInformationActionClick;
|
||||||
|
|
||||||
UserInformationWidgetBuilder(this._imagePaths, this._userProfile);
|
UserInformationWidgetBuilder(
|
||||||
|
// this._imagePaths,
|
||||||
|
this._userProfile
|
||||||
|
);
|
||||||
|
|
||||||
UserInformationWidgetBuilder onOpenUserInformationAction(
|
UserInformationWidgetBuilder onOpenUserInformationAction(
|
||||||
OnOpenUserInformationActionClick onOpenUserInformationActionClick) {
|
OnOpenUserInformationActionClick onOpenUserInformationActionClick) {
|
||||||
@@ -46,12 +49,12 @@ class UserInformationWidgetBuilder {
|
|||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
style: TextStyle(fontSize: 16, color: AppColor.nameUserColor, fontWeight: FontWeight.w500),
|
style: TextStyle(fontSize: 16, color: AppColor.nameUserColor, fontWeight: FontWeight.w500),
|
||||||
)),
|
))),
|
||||||
trailing: Transform(
|
// trailing: Transform(
|
||||||
transform: Matrix4.translationValues(0.0, 0.0, 0.0),
|
// transform: Matrix4.translationValues(0.0, 0.0, 0.0),
|
||||||
child: IconButton(
|
// child: IconButton(
|
||||||
icon: SvgPicture.asset(_imagePaths.icNextArrow, width: 7, height: 12, fit: BoxFit.fill),
|
// icon: SvgPicture.asset(_imagePaths.icNextArrow, width: 7, height: 12, fit: BoxFit.fill),
|
||||||
onPressed: () => {}))),
|
// onPressed: () => {}))),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -71,12 +71,12 @@ class ThreadView extends GetWidget<ThreadController> {
|
|||||||
padding: EdgeInsets.only(left: 15, right: 12),
|
padding: EdgeInsets.only(left: 15, right: 12),
|
||||||
child: (AppBarThreadWidgetBuilder(
|
child: (AppBarThreadWidgetBuilder(
|
||||||
context,
|
context,
|
||||||
imagePaths,
|
// imagePaths,
|
||||||
responsiveUtils,
|
responsiveUtils,
|
||||||
controller.mailboxDashBoardController.selectedMailbox.value,
|
controller.mailboxDashBoardController.selectedMailbox.value,
|
||||||
controller.mailboxDashBoardController.userProfile.value)
|
controller.mailboxDashBoardController.userProfile.value)
|
||||||
..onOpenUserInformationAction(() => {})
|
..onOpenUserInformationAction(() => {})
|
||||||
..onOpenSearchMailActionClick(() => {})
|
// ..onOpenSearchMailActionClick(() => {})
|
||||||
..onOpenListMailboxActionClick(() => controller.openMailboxLeftMenu()))
|
..onOpenListMailboxActionClick(() => controller.openMailboxLeftMenu()))
|
||||||
.build()));
|
.build()));
|
||||||
}
|
}
|
||||||
@@ -90,7 +90,7 @@ class ThreadView extends GetWidget<ThreadController> {
|
|||||||
controller.getListEmailSelected(),
|
controller.getListEmailSelected(),
|
||||||
responsiveUtils)
|
responsiveUtils)
|
||||||
..addCloseActionClick(() => controller.cancelSelectEmail())
|
..addCloseActionClick(() => controller.cancelSelectEmail())
|
||||||
..addRemoveEmailActionClick((listEmail) => {})
|
// ..addRemoveEmailActionClick((listEmail) => {})
|
||||||
..addOnMarkAsEmailReadActionClick((listEmail) => controller.markAsSelectedEmailRead(listEmail))
|
..addOnMarkAsEmailReadActionClick((listEmail) => controller.markAsSelectedEmailRead(listEmail))
|
||||||
..addOpenContextMenuActionClick((listEmail) =>
|
..addOpenContextMenuActionClick((listEmail) =>
|
||||||
controller.openContextMenuSelectedEmail(context, _contextMenuEmailActionTile(context, listEmail)))
|
controller.openContextMenuSelectedEmail(context, _contextMenuEmailActionTile(context, listEmail)))
|
||||||
@@ -101,11 +101,11 @@ class ThreadView extends GetWidget<ThreadController> {
|
|||||||
|
|
||||||
List<Widget> _contextMenuEmailActionTile(BuildContext context, List<PresentationEmail> listEmail) {
|
List<Widget> _contextMenuEmailActionTile(BuildContext context, List<PresentationEmail> listEmail) {
|
||||||
return [
|
return [
|
||||||
_moveToTrashAction(context, listEmail),
|
// _moveToTrashAction(context, listEmail),
|
||||||
_moveToMailboxAction(context, listEmail),
|
_moveToMailboxAction(context, listEmail),
|
||||||
_markAsReadAction(context, listEmail),
|
_markAsReadAction(context, listEmail),
|
||||||
_markAsStarAction(context, listEmail),
|
_markAsStarAction(context, listEmail),
|
||||||
_moveToSpamAction(context, listEmail),
|
// _moveToSpamAction(context, listEmail),
|
||||||
SizedBox(height: 20),
|
SizedBox(height: 20),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -122,15 +122,15 @@ class ThreadView extends GetWidget<ThreadController> {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _moveToTrashAction(BuildContext context, List<PresentationEmail> listEmail) {
|
// Widget _moveToTrashAction(BuildContext context, List<PresentationEmail> listEmail) {
|
||||||
return (EmailContextMenuActionBuilder(
|
// return (EmailContextMenuActionBuilder(
|
||||||
Key('move_to_trash_context_menu_action'),
|
// Key('move_to_trash_context_menu_action'),
|
||||||
SvgPicture.asset(imagePaths.icTrash, width: 24, height: 24, fit: BoxFit.fill),
|
// SvgPicture.asset(imagePaths.icTrash, width: 24, height: 24, fit: BoxFit.fill),
|
||||||
AppLocalizations.of(context).move_to_trash,
|
// AppLocalizations.of(context).move_to_trash,
|
||||||
listEmail)
|
// listEmail)
|
||||||
..onActionClick((data) => {}))
|
// ..onActionClick((data) => {}))
|
||||||
.build();
|
// .build();
|
||||||
}
|
// }
|
||||||
|
|
||||||
Widget _moveToMailboxAction(BuildContext context, List<PresentationEmail> listEmail) {
|
Widget _moveToMailboxAction(BuildContext context, List<PresentationEmail> listEmail) {
|
||||||
return (EmailContextMenuActionBuilder(
|
return (EmailContextMenuActionBuilder(
|
||||||
@@ -160,23 +160,23 @@ class ThreadView extends GetWidget<ThreadController> {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _moveToSpamAction(BuildContext context, List<PresentationEmail> listEmail) {
|
// Widget _moveToSpamAction(BuildContext context, List<PresentationEmail> listEmail) {
|
||||||
return (EmailContextMenuActionBuilder(
|
// return (EmailContextMenuActionBuilder(
|
||||||
Key('move_to_spam_context_menu_action'),
|
// Key('move_to_spam_context_menu_action'),
|
||||||
SvgPicture.asset(imagePaths.icMailboxSpam, width: 24, height: 24, fit: BoxFit.fill),
|
// SvgPicture.asset(imagePaths.icMailboxSpam, width: 24, height: 24, fit: BoxFit.fill),
|
||||||
AppLocalizations.of(context).move_to_spam,
|
// AppLocalizations.of(context).move_to_spam,
|
||||||
listEmail)
|
// listEmail)
|
||||||
..onActionClick((data) => {}))
|
// ..onActionClick((data) => {}))
|
||||||
.build();
|
// .build();
|
||||||
}
|
// }
|
||||||
|
|
||||||
List<PopupMenuItem> _popupMenuEmailActionTile(BuildContext context, List<PresentationEmail> listEmail) {
|
List<PopupMenuItem> _popupMenuEmailActionTile(BuildContext context, List<PresentationEmail> listEmail) {
|
||||||
return [
|
return [
|
||||||
PopupMenuItem(child: _moveToTrashAction(context, listEmail)),
|
// PopupMenuItem(child: _moveToTrashAction(context, listEmail)),
|
||||||
PopupMenuItem(child: _moveToMailboxAction(context, listEmail)),
|
PopupMenuItem(child: _moveToMailboxAction(context, listEmail)),
|
||||||
PopupMenuItem(child: _markAsReadAction(context, listEmail)),
|
PopupMenuItem(child: _markAsReadAction(context, listEmail)),
|
||||||
PopupMenuItem(child: _markAsStarAction(context, listEmail)),
|
PopupMenuItem(child: _markAsStarAction(context, listEmail)),
|
||||||
PopupMenuItem(child: _moveToSpamAction(context, listEmail)),
|
// PopupMenuItem(child: _moveToSpamAction(context, listEmail)),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+13
-13
@@ -15,7 +15,7 @@ typedef OnOpenPopupMenuActionClick = void Function(List<PresentationEmail> listE
|
|||||||
class AppBarThreadSelectModeActiveBuilder {
|
class AppBarThreadSelectModeActiveBuilder {
|
||||||
OnCloseActionClick? _onCloseActionClick;
|
OnCloseActionClick? _onCloseActionClick;
|
||||||
OnMarkAsEmailReadActionClick? _onMarkAsEmailReadActionClick;
|
OnMarkAsEmailReadActionClick? _onMarkAsEmailReadActionClick;
|
||||||
OnRemoveEmailActionClick? _onRemoveEmailActionClick;
|
// OnRemoveEmailActionClick? _onRemoveEmailActionClick;
|
||||||
OnOpenContextMenuActionClick? _onOpenContextMenuActionClick;
|
OnOpenContextMenuActionClick? _onOpenContextMenuActionClick;
|
||||||
OnOpenPopupMenuActionClick? _onOpenPopupMenuActionClick;
|
OnOpenPopupMenuActionClick? _onOpenPopupMenuActionClick;
|
||||||
|
|
||||||
@@ -34,9 +34,9 @@ class AppBarThreadSelectModeActiveBuilder {
|
|||||||
_onMarkAsEmailReadActionClick = onMarkAsEmailReadActionClick;
|
_onMarkAsEmailReadActionClick = onMarkAsEmailReadActionClick;
|
||||||
}
|
}
|
||||||
|
|
||||||
void addRemoveEmailActionClick(OnRemoveEmailActionClick onRemoveEmailActionClick) {
|
// void addRemoveEmailActionClick(OnRemoveEmailActionClick onRemoveEmailActionClick) {
|
||||||
_onRemoveEmailActionClick = onRemoveEmailActionClick;
|
// _onRemoveEmailActionClick = onRemoveEmailActionClick;
|
||||||
}
|
// }
|
||||||
|
|
||||||
void addOpenContextMenuActionClick(OnOpenContextMenuActionClick onOpenContextMenuActionClick) {
|
void addOpenContextMenuActionClick(OnOpenContextMenuActionClick onOpenContextMenuActionClick) {
|
||||||
_onOpenContextMenuActionClick = onOpenContextMenuActionClick;
|
_onOpenContextMenuActionClick = onOpenContextMenuActionClick;
|
||||||
@@ -93,15 +93,15 @@ class AppBarThreadSelectModeActiveBuilder {
|
|||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
IconButton(
|
// IconButton(
|
||||||
key: Key('button_remove_email_selected'),
|
// key: Key('button_remove_email_selected'),
|
||||||
color: AppColor.baseTextColor,
|
// color: AppColor.baseTextColor,
|
||||||
icon: SvgPicture.asset(_imagePaths.icTrash, color: AppColor.baseTextColor, fit: BoxFit.fill),
|
// icon: SvgPicture.asset(_imagePaths.icTrash, color: AppColor.baseTextColor, fit: BoxFit.fill),
|
||||||
onPressed: () => {
|
// onPressed: () => {
|
||||||
if (_onRemoveEmailActionClick != null) {
|
// if (_onRemoveEmailActionClick != null) {
|
||||||
_onRemoveEmailActionClick!(_listEmail)
|
// _onRemoveEmailActionClick!(_listEmail)
|
||||||
}
|
// }
|
||||||
}),
|
// }),
|
||||||
IconButton(
|
IconButton(
|
||||||
key: Key('button_unread_email_selected'),
|
key: Key('button_unread_email_selected'),
|
||||||
color: AppColor.baseTextColor,
|
color: AppColor.baseTextColor,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'dart:ui';
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
// import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
@@ -13,19 +13,19 @@ typedef OnOpenListMailboxActionClick = void Function();
|
|||||||
typedef OnOpenUserInformationActionClick = void Function();
|
typedef OnOpenUserInformationActionClick = void Function();
|
||||||
|
|
||||||
class AppBarThreadWidgetBuilder {
|
class AppBarThreadWidgetBuilder {
|
||||||
OnOpenSearchMailActionClick? _onOpenSearchMailActionClick;
|
// OnOpenSearchMailActionClick? _onOpenSearchMailActionClick;
|
||||||
OnOpenListMailboxActionClick? _onOpenListMailboxActionClick;
|
OnOpenListMailboxActionClick? _onOpenListMailboxActionClick;
|
||||||
OnOpenUserInformationActionClick? _onOpenUserInformationActionClick;
|
OnOpenUserInformationActionClick? _onOpenUserInformationActionClick;
|
||||||
|
|
||||||
final BuildContext _context;
|
final BuildContext _context;
|
||||||
final ImagePaths _imagePaths;
|
// final ImagePaths _imagePaths;
|
||||||
final ResponsiveUtils _responsiveUtils;
|
final ResponsiveUtils _responsiveUtils;
|
||||||
final PresentationMailbox? _presentationMailbox;
|
final PresentationMailbox? _presentationMailbox;
|
||||||
final UserProfile? _userProfile;
|
final UserProfile? _userProfile;
|
||||||
|
|
||||||
AppBarThreadWidgetBuilder(
|
AppBarThreadWidgetBuilder(
|
||||||
this._context,
|
this._context,
|
||||||
this._imagePaths,
|
// this._imagePaths,
|
||||||
this._responsiveUtils,
|
this._responsiveUtils,
|
||||||
this._presentationMailbox,
|
this._presentationMailbox,
|
||||||
this._userProfile,
|
this._userProfile,
|
||||||
@@ -36,9 +36,9 @@ class AppBarThreadWidgetBuilder {
|
|||||||
_onOpenUserInformationActionClick = onOpenUserInformationActionClick;
|
_onOpenUserInformationActionClick = onOpenUserInformationActionClick;
|
||||||
}
|
}
|
||||||
|
|
||||||
void onOpenSearchMailActionClick(OnOpenSearchMailActionClick onOpenSearchMailActionClick) {
|
// void onOpenSearchMailActionClick(OnOpenSearchMailActionClick onOpenSearchMailActionClick) {
|
||||||
_onOpenSearchMailActionClick = onOpenSearchMailActionClick;
|
// _onOpenSearchMailActionClick = onOpenSearchMailActionClick;
|
||||||
}
|
// }
|
||||||
|
|
||||||
void onOpenListMailboxActionClick(OnOpenListMailboxActionClick onOpenListMailboxActionClick) {
|
void onOpenListMailboxActionClick(OnOpenListMailboxActionClick onOpenListMailboxActionClick) {
|
||||||
_onOpenListMailboxActionClick = onOpenListMailboxActionClick;
|
_onOpenListMailboxActionClick = onOpenListMailboxActionClick;
|
||||||
@@ -48,7 +48,7 @@ class AppBarThreadWidgetBuilder {
|
|||||||
return Container(
|
return Container(
|
||||||
key: Key('app_bar_thread_widget'),
|
key: Key('app_bar_thread_widget'),
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
padding: EdgeInsets.only(top: 8, bottom: 8),
|
padding: EdgeInsets.only(top: 16, bottom: 8),
|
||||||
child: MediaQuery(
|
child: MediaQuery(
|
||||||
data: MediaQueryData(padding: EdgeInsets.zero),
|
data: MediaQueryData(padding: EdgeInsets.zero),
|
||||||
child: Row(
|
child: Row(
|
||||||
@@ -57,7 +57,7 @@ class AppBarThreadWidgetBuilder {
|
|||||||
children: [
|
children: [
|
||||||
if (_responsiveUtils.isMobile(_context)) _buildIconUser(),
|
if (_responsiveUtils.isMobile(_context)) _buildIconUser(),
|
||||||
Expanded(child: _buildContentCenterAppBar()),
|
Expanded(child: _buildContentCenterAppBar()),
|
||||||
_buildIconSearch(),
|
// _buildIconSearch(),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -78,19 +78,19 @@ class AppBarThreadWidgetBuilder {
|
|||||||
.build()));
|
.build()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildIconSearch() {
|
// Widget _buildIconSearch() {
|
||||||
return Padding(
|
// return Padding(
|
||||||
padding: EdgeInsets.only(left: 16),
|
// padding: EdgeInsets.only(left: 16),
|
||||||
child: IconButton(
|
// child: IconButton(
|
||||||
color: AppColor.baseTextColor,
|
// color: AppColor.baseTextColor,
|
||||||
icon: SvgPicture.asset(_imagePaths.icSearch, color: AppColor.baseTextColor, fit: BoxFit.fill),
|
// icon: SvgPicture.asset(_imagePaths.icSearch, color: AppColor.baseTextColor, fit: BoxFit.fill),
|
||||||
onPressed: () => {
|
// onPressed: () => {
|
||||||
if (_onOpenSearchMailActionClick != null) {
|
// if (_onOpenSearchMailActionClick != null) {
|
||||||
_onOpenSearchMailActionClick!()
|
// _onOpenSearchMailActionClick!()
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
));
|
// ));
|
||||||
}
|
// }
|
||||||
|
|
||||||
Widget _buildContentCenterAppBar() {
|
Widget _buildContentCenterAppBar() {
|
||||||
return Row(
|
return Row(
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ class EmailTileBuilder {
|
|||||||
: AvatarBuilder()
|
: AvatarBuilder()
|
||||||
.text('${_presentationEmail.getAvatarText()}')
|
.text('${_presentationEmail.getAvatarText()}')
|
||||||
.size(40)
|
.size(40)
|
||||||
.iconStatus(_imagePaths.icOffline)
|
// .iconStatus(_imagePaths.icOffline)
|
||||||
.addOnTapActionClick(() {
|
.addOnTapActionClick(() {
|
||||||
if (_selectModeAll == SelectMode.ACTIVE && _onSelectEmailActionClick != null) {
|
if (_selectModeAll == SelectMode.ACTIVE && _onSelectEmailActionClick != null) {
|
||||||
_onSelectEmailActionClick!(_presentationEmail);
|
_onSelectEmailActionClick!(_presentationEmail);
|
||||||
@@ -185,7 +185,7 @@ class EmailTileBuilder {
|
|||||||
return AvatarBuilder()
|
return AvatarBuilder()
|
||||||
.text('${_presentationEmail.getAvatarText()}')
|
.text('${_presentationEmail.getAvatarText()}')
|
||||||
.size(40)
|
.size(40)
|
||||||
.iconStatus(_imagePaths.icOffline)
|
// .iconStatus(_imagePaths.icOffline)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user