TF-1616: Fix drag and drop email to mailbox
(cherry picked from commit 324a28c958dd9b4b9f25d7ce18c6a2a4a5c18531)
This commit is contained in:
@@ -93,6 +93,8 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
final SubscribeMultipleMailboxInteractor _subscribeMultipleMailboxInteractor;
|
||||
|
||||
final currentSelectMode = SelectMode.INACTIVE.obs;
|
||||
final _activeScrollTop = RxBool(false);
|
||||
final _activeScrollBottom = RxBool(true);
|
||||
|
||||
final _openMailboxEventController = StreamController<OpenMailboxViewEvent>();
|
||||
final mailboxListScrollController = ScrollController();
|
||||
@@ -130,8 +132,8 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
_openMailboxEventController.stream.throttleTime(const Duration(milliseconds: 800)).listen((event) {
|
||||
_handleOpenMailbox(event.buildContext, event.presentationMailbox);
|
||||
});
|
||||
|
||||
_initCollapseMailboxCategories();
|
||||
mailboxListScrollController.addListener(_mailboxListScrollControllerListener);
|
||||
super.onReady();
|
||||
}
|
||||
|
||||
@@ -1127,4 +1129,33 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void _mailboxListScrollControllerListener() {
|
||||
_handleScrollTop();
|
||||
_handleScrollBottom();
|
||||
}
|
||||
|
||||
void _handleScrollTop() {
|
||||
if (mailboxListScrollController.position.pixels == 0) {
|
||||
_activeScrollTop.value = false;
|
||||
}
|
||||
|
||||
if (mailboxListScrollController.position.pixels > 40) {
|
||||
_activeScrollTop.value = true;
|
||||
}
|
||||
}
|
||||
|
||||
void _handleScrollBottom() {
|
||||
if (mailboxListScrollController.position.pixels - mailboxListScrollController.position.maxScrollExtent == 0) {
|
||||
_activeScrollBottom.value = false;
|
||||
}
|
||||
|
||||
if (mailboxListScrollController.position.maxScrollExtent - mailboxListScrollController.position.pixels > 40) {
|
||||
_activeScrollBottom.value = true;
|
||||
}
|
||||
}
|
||||
|
||||
bool get activeScrollTop => _activeScrollTop.value;
|
||||
|
||||
bool get activeScrollBottom => _activeScrollBottom.value;
|
||||
}
|
||||
@@ -212,7 +212,7 @@ class MailboxView extends GetWidget<MailboxController>
|
||||
})
|
||||
])
|
||||
),
|
||||
Obx(() => controller.mailboxDashBoardController.isDraggingMailbox
|
||||
Obx(() => controller.mailboxDashBoardController.isDraggingMailbox && controller.activeScrollTop
|
||||
? Align(
|
||||
alignment: Alignment.topCenter,
|
||||
child: InkWell(
|
||||
@@ -221,7 +221,7 @@ class MailboxView extends GetWidget<MailboxController>
|
||||
child: Container(
|
||||
height: 40)))
|
||||
: const SizedBox.shrink()),
|
||||
Obx(() => controller.mailboxDashBoardController.isDraggingMailbox
|
||||
Obx(() => controller.mailboxDashBoardController.isDraggingMailbox && controller.activeScrollBottom
|
||||
? Align(
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: InkWell(
|
||||
|
||||
+7
@@ -164,6 +164,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
final vacationResponse = Rxn<VacationResponse>();
|
||||
final routerParameters = Rxn<Map<String, String?>>();
|
||||
final _isDraggingMailbox = RxBool(false);
|
||||
final _triggerDropMailbox = RxBool(true);
|
||||
final searchMailboxActivated = RxBool(false);
|
||||
Session? sessionCurrent;
|
||||
Map<Role, MailboxId> mapDefaultMailboxIdByRole = {};
|
||||
@@ -1562,6 +1563,12 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
_isDraggingMailbox.value = isDragging;
|
||||
}
|
||||
|
||||
void onTriggerDropMailbox(bool onScroll) {
|
||||
_triggerDropMailbox.value = onScroll;
|
||||
}
|
||||
|
||||
bool get triggerDropMailbox => _triggerDropMailbox.value;
|
||||
|
||||
bool get isDraggingMailbox => _isDraggingMailbox.value;
|
||||
|
||||
void _handleSendEmailFailure(SendEmailFailure failure) {
|
||||
|
||||
Reference in New Issue
Block a user