TF-1427 Handle show mailbox in search mailbox view
This commit is contained in:
@@ -17,6 +17,12 @@ import 'package:model/mailbox/select_mode.dart';
|
||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_subscribe_action_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_subscribe_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/subscribe_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/subscribe_multiple_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/subscribe_request.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/list_mailbox_node_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree.dart';
|
||||
@@ -392,4 +398,22 @@ abstract class BaseMailboxController extends BaseController {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
SubscribeRequest? generateSubscribeRequest(
|
||||
MailboxId mailboxId,
|
||||
MailboxSubscribeState subscribeState,
|
||||
MailboxSubscribeAction subscribeAction
|
||||
) {
|
||||
final mailboxNode = findMailboxNodeById(mailboxId);
|
||||
|
||||
if (mailboxNode != null) {
|
||||
if (mailboxNode.hasChildren()) {
|
||||
final listDescendantMailboxIds = mailboxNode.descendantsAsList().mailboxIds;
|
||||
return SubscribeMultipleMailboxRequest(mailboxId, listDescendantMailboxIds, subscribeState, subscribeAction);
|
||||
} else {
|
||||
return SubscribeMailboxRequest(mailboxId, subscribeState, subscribeAction);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
|
||||
class PopupItemWidget extends StatelessWidget {
|
||||
|
||||
final String _iconAction;
|
||||
final String _nameAction;
|
||||
final Color? colorIcon;
|
||||
final double? iconSize;
|
||||
final TextStyle? styleName;
|
||||
final EdgeInsets? padding;
|
||||
final VoidCallback? onCallbackAction;
|
||||
|
||||
const PopupItemWidget(
|
||||
this._iconAction,
|
||||
this._nameAction,
|
||||
{
|
||||
Key? key,
|
||||
this.colorIcon,
|
||||
this.iconSize,
|
||||
this.styleName,
|
||||
this.padding,
|
||||
this.onCallbackAction
|
||||
}
|
||||
) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return InkWell(
|
||||
onTap: onCallbackAction,
|
||||
child: Padding(
|
||||
padding: padding ?? const EdgeInsets.symmetric(horizontal: 20, vertical: 16),
|
||||
child: SizedBox(
|
||||
child: Row(children: [
|
||||
SvgPicture.asset(
|
||||
_iconAction,
|
||||
width: iconSize ?? 20,
|
||||
height: iconSize ?? 20,
|
||||
fit: BoxFit.fill,
|
||||
color: colorIcon
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
Expanded(child: Text(
|
||||
_nameAction,
|
||||
style: styleName ?? const TextStyle(
|
||||
fontSize: 17,
|
||||
fontWeight: FontWeight.normal,
|
||||
color: Colors.black
|
||||
)
|
||||
)),
|
||||
])
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user