TF-80 Move multiple email to mailbox from thread view
This commit is contained in:
@@ -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())
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user