Skip to content

Commit b70ea00

Browse files
fixup! TF-3308 Implement super_drag_and_drop
1 parent 8650a78 commit b70ea00

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

lib/features/composer/presentation/composer_controller.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ class ComposerController extends BaseController
130130
final replyToRecipientState = PrefixRecipientState.disabled.obs;
131131
final identitySelected = Rxn<Identity>();
132132
final listFromIdentities = RxList<Identity>();
133+
final isDroppedFileProcessing = false.obs;
133134

134135
final LocalFilePickerInteractor _localFilePickerInteractor;
135136
final LocalImagePickerInteractor _localImagePickerInteractor;
@@ -286,6 +287,7 @@ class ComposerController extends BaseController
286287
}
287288
_identityContentOnOpenPolicy = SignatureStatus.editedAvailable;
288289
responsiveContainerKey = null;
290+
isDroppedFileProcessing.value = false;
289291
super.onClose();
290292
}
291293

@@ -447,6 +449,7 @@ class ComposerController extends BaseController
447449
event.preventDefault();
448450

449451
if (event.dataTransfer.types.validateFilesTransfer) {
452+
isDroppedFileProcessing.value = true;
450453
mailboxDashBoardController.localFileDraggableAppState.value = DraggableAppState.inActive;
451454
}
452455
});
@@ -2299,6 +2302,7 @@ class ComposerController extends BaseController
22992302
required List<FileInfo> listFileInfo,
23002303
required double maxWidth
23012304
}) async {
2305+
isDroppedFileProcessing.value = false;
23022306
_setUpMaxWidthInlineImage(context: context, maxWidth: maxWidth);
23032307

23042308
if (listFileInfo.isEmpty && context.mounted) {

lib/features/composer/presentation/composer_view_web.dart

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
44
import 'package:get/get.dart';
55
import 'package:model/email/prefix_email_address.dart';
66
import 'package:pointer_interceptor/pointer_interceptor.dart';
7+
import 'package:tmail_ui_user/features/base/widget/circle_loading_widget.dart';
78
import 'package:tmail_ui_user/features/base/widget/popup_item_widget.dart';
89
import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart';
910
import 'package:tmail_ui_user/features/composer/presentation/model/prefix_recipient_state.dart';
@@ -311,6 +312,13 @@ class ComposerView extends GetWidget<ComposerController> {
311312
)
312313
),
313314
);
315+
} else if (controller.isDroppedFileProcessing.value) {
316+
return const Center(
317+
child: CircleLoadingWidget(
318+
size: 80,
319+
strokeWidth: 4,
320+
),
321+
);
314322
} else {
315323
return const SizedBox.shrink();
316324
}
@@ -618,6 +626,13 @@ class ComposerView extends GetWidget<ComposerController> {
618626
)
619627
),
620628
);
629+
} else if (controller.isDroppedFileProcessing.value) {
630+
return const Center(
631+
child: CircleLoadingWidget(
632+
size: 80,
633+
strokeWidth: 4,
634+
),
635+
);
621636
} else {
622637
return const SizedBox.shrink();
623638
}
@@ -903,6 +918,13 @@ class ComposerView extends GetWidget<ComposerController> {
903918
)
904919
),
905920
);
921+
} else if (controller.isDroppedFileProcessing.value) {
922+
return const Center(
923+
child: CircleLoadingWidget(
924+
size: 80,
925+
strokeWidth: 4,
926+
),
927+
);
906928
} else {
907929
return const SizedBox.shrink();
908930
}

0 commit comments

Comments
 (0)