TF-1427 Apply new design for search mailbox on mobile/tablet

This commit is contained in:
dab246
2023-02-09 16:43:37 +07:00
committed by Dat Vu
parent 705dd5d28c
commit 2cc2e17bf2
16 changed files with 153 additions and 47 deletions
@@ -596,10 +596,10 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
bool isSearchActive() => searchState.value.searchStatus == SearchStatus.ACTIVE;
void enableSearch() {
_cancelSelectMailbox();
void openSearchViewAction(BuildContext context) {
SearchMailboxBindings().dependencies();
mailboxDashBoardController.searchMailboxActivated.value = true;
closeMailboxScreen(context);
}
void disableSearch() {
@@ -233,8 +233,8 @@ class MailboxView extends GetWidget<MailboxController> {
color: AppColor.colorTextButton,
fit: BoxFit.fill
),
tooltip: AppLocalizations.of(context).search_folder,
onTap: controller.enableSearch
tooltip: AppLocalizations.of(context).search_folder,
onTap: () => controller.openSearchViewAction(context)
),
buildIconWeb(
minSize: 40,
@@ -160,7 +160,7 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
color: AppColor.colorTextButton,
fit: BoxFit.fill
),
onTap: controller.enableSearch
onTap: () => controller.openSearchViewAction(context)
),
buildIconWeb(
minSize: 40,
@@ -463,14 +463,21 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
return (MailboxBottomSheetActionTileBuilder(
Key('${contextMenuItem.action.name}_action'),
SvgPicture.asset(
contextMenuItem.action.getContextMenuIcon(_imagePaths),
color: contextMenuItem.action.getColorContextMenuIcon()),
contextMenuItem.action.getContextMenuIcon(_imagePaths),
color: contextMenuItem.action.getColorContextMenuIcon(),
width: 24,
height: 24
),
contextMenuItem.action.getTitleContextMenu(context),
mailbox,
absorbing: !contextMenuItem.isActivated,
opacity: !contextMenuItem.isActivated)
..onActionClick((mailbox) =>
controller.handleMailboxAction(context, contextMenuItem.action, mailbox)))
..actionTextStyle(textStyle: const TextStyle(
fontSize: 16,
color: Colors.black,
fontWeight: FontWeight.w500
))
..onActionClick((mailbox) => controller.handleMailboxAction(context, contextMenuItem.action, mailbox)))
.build();
}
@@ -495,15 +502,17 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
absorbing: !contextMenuItem.isActivated,
child: Opacity(
opacity: contextMenuItem.isActivated ? 1.0 : 0.3,
child: popupItem(contextMenuItem.action.getContextMenuIcon(_imagePaths),
contextMenuItem.action.getTitleContextMenu(context),
colorIcon: contextMenuItem.action.getColorContextMenuIcon(),
styleName: TextStyle(
fontWeight: FontWeight.normal,
fontSize: 17,
color: contextMenuItem.action.getColorContextMenuTitle()),
onCallbackAction: () =>
controller.handleMailboxAction(context, contextMenuItem.action, mailbox)),
child: popupItem(
contextMenuItem.action.getContextMenuIcon(_imagePaths),
contextMenuItem.action.getTitleContextMenu(context),
colorIcon: contextMenuItem.action.getColorContextMenuIcon(),
styleName: TextStyle(
fontWeight: FontWeight.w500,
fontSize: 16,
color: contextMenuItem.action.getColorContextMenuTitle()
),
onCallbackAction: () => controller.handleMailboxAction(context, contextMenuItem.action, mailbox)
),
),
));
}
@@ -69,15 +69,15 @@ extension MailboxActionsExtension on MailboxActions {
case MailboxActions.enableSpamReport:
return imagePaths.icSpamReportEnable;
case MailboxActions.markAsRead:
return imagePaths.icRead;
return imagePaths.icMarkAsRead;
case MailboxActions.move:
return imagePaths.icMove;
return imagePaths.icMoveMailbox;
case MailboxActions.rename:
return imagePaths.icRenameMailbox;
case MailboxActions.delete:
return imagePaths.icDelete;
return imagePaths.icDeleteMailbox;
case MailboxActions.disableMailbox:
return imagePaths.icEyeOff;
return imagePaths.icHideMailbox;
default:
return '';
}
@@ -96,12 +96,8 @@ extension MailboxActionsExtension on MailboxActions {
switch(this) {
case MailboxActions.delete:
return AppColor.colorActionDeleteConfirmDialog;
case MailboxActions.disableSpamReport:
case MailboxActions.enableSpamReport:
case MailboxActions.disableMailbox:
return AppColor.primaryColor;
default:
return Colors.black;
return AppColor.primaryColor;
}
}
@@ -8,6 +8,7 @@ typedef OnClickOpenMailboxAction = void Function(PresentationMailbox);
typedef OnClickOpenMenuMailboxAction = void Function(RelativeRect, PresentationMailbox);
typedef OnSelectMailboxAction = void Function(PresentationMailbox);
typedef OnDragEmailToMailboxAccepted = void Function(List<PresentationEmail>, PresentationMailbox);
typedef OnLongPressMailboxAction = void Function(PresentationMailbox);
typedef OnClickExpandMailboxNodeAction = void Function(MailboxNode);
typedef OnClickOpenMailboxNodeAction = void Function(MailboxNode);
@@ -30,7 +30,7 @@ class MailBoxFolderTileBuilder {
OnSelectMailboxNodeAction? _onSelectMailboxFolderClick;
OnClickOpenMenuMailboxNodeAction? _onMenuActionClick;
OnDragEmailToMailboxAccepted? _onDragItemAccepted;
OnLongPressMailboxNodeAction? _onLongPressSpamReport;
OnLongPressMailboxNodeAction? _onLongPressMailboxNodeAction;
bool isHoverItem = false;
@@ -68,8 +68,8 @@ class MailBoxFolderTileBuilder {
_onDragItemAccepted = onDragItemAccepted;
}
void addOnLongPressMailboxNodeAction(OnLongPressMailboxNodeAction onLongPressSpamReport) {
_onLongPressSpamReport = onLongPressSpamReport;
void addOnLongPressMailboxNodeAction(OnLongPressMailboxNodeAction onLongPressMailboxNodeAction) {
_onLongPressMailboxNodeAction = onLongPressMailboxNodeAction;
}
Widget build() => DragTarget<List<PresentationEmail>>(