TF-3953 Close several modals when click outside

This commit is contained in:
DatDang
2025-08-07 14:14:50 +07:00
committed by Dat H. Pham
parent 44c17bc762
commit 9e7298bc76
34 changed files with 575 additions and 580 deletions
+1 -2
View File
@@ -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,
+11 -2
View File
@@ -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) {