TF-4141 Disable drag & drop email to Action required folder

This commit is contained in:
dab246
2025-12-16 16:47:32 +07:00
committed by Dat H. Pham
parent e8a76542cf
commit 8e2932658b
@@ -77,59 +77,70 @@ class _MailboxItemWidgetState extends State<MailboxItemWidget> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (_responsiveUtils.isWebDesktop(context) && widget.mailboxDisplayed == MailboxDisplayed.mailbox) { if (_responsiveUtils.isWebDesktop(context) && widget.mailboxDisplayed == MailboxDisplayed.mailbox) {
return DragTarget<List<PresentationEmail>>( final itemWidget = Material(
key: _key, key: widget.mailboxNode.item.isActionRequired ? _key : null,
builder: (context, candidateEmails, rejectedEmails) { type: MaterialType.transparency,
return Material( child: InkWell(
type: MaterialType.transparency, onTap: () =>
child: InkWell( widget.onOpenMailboxFolderClick?.call(widget.mailboxNode),
onTap: () => widget.onOpenMailboxFolderClick?.call(widget.mailboxNode), onHover: (value) => setState(() => _isItemHovered = value),
onHover: (value) => setState(() => _isItemHovered = value), borderRadius: const BorderRadius.all(
Radius.circular(MailboxItemWidgetStyles.borderRadius),
),
child: Container(
decoration: BoxDecoration(
borderRadius: const BorderRadius.all( borderRadius: const BorderRadius.all(
Radius.circular(MailboxItemWidgetStyles.borderRadius), Radius.circular(MailboxItemWidgetStyles.borderRadius),
), ),
child: Container( color: backgroundColorItem,
decoration: BoxDecoration( ),
borderRadius: const BorderRadius.all( padding: const EdgeInsetsDirectional.symmetric(
Radius.circular(MailboxItemWidgetStyles.borderRadius), horizontal: MailboxItemWidgetStyles.itemPadding,
), ),
color: backgroundColorItem, height: widget.itemHeight ??
), (widget.mailboxNode.item.isTeamMailboxes
padding: const EdgeInsetsDirectional.symmetric(
horizontal: MailboxItemWidgetStyles.itemPadding,
),
height: widget.itemHeight ?? (widget.mailboxNode.item.isTeamMailboxes
? MailboxItemWidgetStyles.teamMailboxHeight ? MailboxItemWidgetStyles.teamMailboxHeight
: MailboxItemWidgetStyles.height), : MailboxItemWidgetStyles.height),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: widget.mailboxNode.item.isTeamMailboxes crossAxisAlignment: widget.mailboxNode.item.isTeamMailboxes
? CrossAxisAlignment.start ? CrossAxisAlignment.start
: CrossAxisAlignment.center, : CrossAxisAlignment.center,
children: [ children: [
if (_isIconDisplayed) if (_isIconDisplayed)
MailboxIconWidget( MailboxIconWidget(
icon: _iconMailbox, icon: _iconMailbox,
color: widget.iconColor, color: widget.iconColor,
), ),
Expanded( Expanded(
child: LabelMailboxItemWidget( child: LabelMailboxItemWidget(
itemKey: _key, itemKey: _key,
mailboxNode: widget.mailboxNode, mailboxNode: widget.mailboxNode,
isItemHovered: _isItemHovered, isItemHovered: _isItemHovered,
isSelected: _isSelected, isSelected: _isSelected,
isHighlighted: widget.isHighlighted, isHighlighted: widget.isHighlighted,
textStyle: widget.textStyle, textStyle: widget.textStyle,
onMenuActionClick: widget.onMenuActionClick, onMenuActionClick: widget.onMenuActionClick,
onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback, onEmptyMailboxActionCallback:
onClickExpandMailboxNodeAction: widget.onExpandFolderActionClick, widget.onEmptyMailboxActionCallback,
) onClickExpandMailboxNodeAction:
), widget.onExpandFolderActionClick,
] ),
) ),
), ],
), ),
); ),
),
);
if (widget.mailboxNode.item.isActionRequired) {
return itemWidget;
}
return DragTarget<List<PresentationEmail>>(
key: _key,
builder: (context, candidateEmails, rejectedEmails) {
return itemWidget;
}, },
onAcceptWithDetails: (emails) => widget.onDragItemAccepted?.call(emails.data, widget.mailboxNode.item), onAcceptWithDetails: (emails) => widget.onDragItemAccepted?.call(emails.data, widget.mailboxNode.item),
); );