TF-80 Move multiple email to mailbox from thread view

This commit is contained in:
dab246
2021-09-21 12:52:27 +07:00
committed by Dat H. Pham
parent 24e52dc6a4
commit a12efc8d2b
43 changed files with 1007 additions and 443 deletions
@@ -3,9 +3,13 @@ import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:model/mailbox/select_mode.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_displayed.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
typedef OnExpandFolderActionClick = void Function(MailboxNode mailboxNode);
typedef OnSelectMailboxFolderClick = void Function(MailboxNode mailboxNode);
class MailBoxFolderTileBuilder {
final MailboxNode _mailboxNode;
@@ -15,6 +19,9 @@ class MailBoxFolderTileBuilder {
final SelectMode selectMode;
final MailboxDisplayed mailboxDisplayed;
OnExpandFolderActionClick? _onExpandFolderActionClick;
OnSelectMailboxFolderClick? _onSelectMailboxFolderClick;
MailBoxFolderTileBuilder(
this._context,
this._imagePaths,
@@ -26,6 +33,14 @@ class MailBoxFolderTileBuilder {
}
);
void addOnExpandFolderActionClick(OnExpandFolderActionClick onExpandFolderActionClick) {
this._onExpandFolderActionClick = onExpandFolderActionClick;
}
void addOnSelectMailboxFolderClick(OnSelectMailboxFolderClick onSelectMailboxFolderClick) {
this._onSelectMailboxFolderClick = onSelectMailboxFolderClick;
}
Widget build() {
return Container(
key: Key('mailbox_folder_tile'),
@@ -39,6 +54,11 @@ class MailBoxFolderTileBuilder {
child: MediaQuery(
data: MediaQueryData(padding: EdgeInsets.zero),
child: ListTile(
onTap: () {
if (_onSelectMailboxFolderClick != null) {
_onSelectMailboxFolderClick!(_mailboxNode);
}
},
contentPadding: EdgeInsets.zero,
leading: Padding(
padding: EdgeInsets.only(left: mailboxDisplayed == MailboxDisplayed.mailbox
@@ -72,14 +92,21 @@ class MailBoxFolderTileBuilder {
: 36,
left: mailboxDisplayed == MailboxDisplayed.mailbox ? 16 : 16),
child: _mailboxNode.hasChildren()
? SvgPicture.asset(
_imagePaths.icFolderArrow,
width: 12,
height: 12,
color: selectMode == SelectMode.ACTIVE
? AppColor.mailboxSelectedIconColor
: AppColor.mailboxIconColor,
fit: BoxFit.fill)
? GestureDetector(
onTap: () {
if (_onExpandFolderActionClick != null) {
_onExpandFolderActionClick!(_mailboxNode);
}
},
child: SvgPicture.asset(
_mailboxNode.expandMode == ExpandMode.EXPAND ? _imagePaths.icExpandFolder : _imagePaths.icFolderArrow,
width: _mailboxNode.expandMode == ExpandMode.EXPAND ? 8 : 12,
height: _mailboxNode.expandMode == ExpandMode.EXPAND ? 8 : 12,
color: selectMode == SelectMode.ACTIVE
? AppColor.mailboxSelectedIconColor
: AppColor.mailboxIconColor,
fit: BoxFit.fill),
)
: SizedBox.shrink())
)
)