TF-3953 Close several modals when click outside
This commit is contained in:
@@ -3,13 +3,12 @@ import 'dart:async';
|
||||
import 'package:app_links/app_links.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:rxdart/subjects.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/message_dialog_action_mixin.dart';
|
||||
import 'package:tmail_ui_user/main/deep_links/deep_link_action_type.dart';
|
||||
import 'package:tmail_ui_user/main/deep_links/deep_link_callback_action_define.dart';
|
||||
import 'package:tmail_ui_user/main/deep_links/deep_link_data.dart';
|
||||
import 'package:tmail_ui_user/main/deep_links/open_app_deep_link_handler_mixin.dart';
|
||||
|
||||
class DeepLinksManager with MessageDialogActionMixin, OpenAppDeepLinkHandlerMixin {
|
||||
class DeepLinksManager with OpenAppDeepLinkHandlerMixin {
|
||||
|
||||
BehaviorSubject<DeepLinkData?> _pendingDeepLinkData = BehaviorSubject.seeded(null);
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:rich_text_composer/views/commons/logger.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/message_dialog_action_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/message_dialog_action_manager.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/state/auto_sign_in_via_deep_link_state.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/usecases/auto_sign_in_via_deep_link_interactor.dart';
|
||||
import 'package:tmail_ui_user/main/deep_links/deep_link_callback_action_define.dart';
|
||||
@@ -13,7 +13,7 @@ import 'package:tmail_ui_user/main/deep_links/open_app_deep_link_data.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
|
||||
mixin OpenAppDeepLinkHandlerMixin on MessageDialogActionMixin {
|
||||
mixin OpenAppDeepLinkHandlerMixin {
|
||||
OpenAppDeepLinkData? parseOpenAppDeepLink(Uri uri) {
|
||||
try {
|
||||
final accessToken = uri.queryParameters['access_token'] ?? '';
|
||||
@@ -120,7 +120,7 @@ mixin OpenAppDeepLinkHandlerMixin on MessageDialogActionMixin {
|
||||
}) {
|
||||
final appLocalizations = AppLocalizations.of(context);
|
||||
|
||||
showConfirmDialogAction(
|
||||
MessageDialogActionManager().showConfirmDialogAction(
|
||||
context,
|
||||
'',
|
||||
appLocalizations.yes,
|
||||
|
||||
@@ -21,15 +21,24 @@ class DialogRouter {
|
||||
static Future<dynamic> pushGeneralDialog({
|
||||
required String routeName,
|
||||
required Object? arguments
|
||||
}) {
|
||||
}) async {
|
||||
_isDialogOpened.value = true;
|
||||
_bindingDI(routeName);
|
||||
|
||||
return Get.generalDialog(
|
||||
final returnedValue = await Get.generalDialog(
|
||||
barrierDismissible: true,
|
||||
barrierLabel: routeName,
|
||||
routeSettings: RouteSettings(arguments: arguments),
|
||||
pageBuilder: (_, __, ___) => _generateView(routeName: routeName, arguments: arguments)
|
||||
);
|
||||
|
||||
_isDialogOpened.value = false;
|
||||
return returnedValue;
|
||||
}
|
||||
|
||||
static final RxBool _isDialogOpened = false.obs;
|
||||
static bool get isDialogOpened => _isDialogOpened.value;
|
||||
|
||||
static void _bindingDI(String routeName) {
|
||||
log('DialogRouter::_bindingDI():routeName: $routeName');
|
||||
switch(routeName) {
|
||||
|
||||
Reference in New Issue
Block a user