TF-3671 Fix all composer interaction are blocked without network (#3682)

This commit is contained in:
Dat Vu
2025-05-08 12:50:07 +07:00
committed by GitHub
parent 1615f8be4d
commit d5946542e0
7 changed files with 37 additions and 6 deletions
@@ -119,6 +119,7 @@ class _WebEditorState extends State<WebEditorWidget> {
shouldEnsureVisible: true,
hint: '',
darkMode: false,
cacheHTMLAssetOffline: true,
initialText: widget.content,
customBodyCssStyle: HtmlUtils.customCssStyleHtmlEditor(
direction: widget.direction,
@@ -504,6 +504,7 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController>
shouldEnsureVisible: true,
hint: '',
darkMode: false,
cacheHTMLAssetOffline: true,
initialText: initContent.isEmpty ? null : initContent,
disableDragAndDrop: true,
spellCheck: true,
@@ -480,6 +480,7 @@ class VacationView extends GetWidget<VacationController> with RichTextButtonMixi
htmlEditorOptions: html_editor_browser.HtmlEditorOptions(
hint: '',
darkMode: false,
cacheHTMLAssetOffline: true,
initialText: controller.vacationMessageHtmlText,
spellCheck: true,
customBodyCssStyle: HtmlUtils.customCssStyleHtmlEditor(direction: AppUtils.getCurrentDirection(context))
+4 -1
View File
@@ -16,6 +16,7 @@ import 'package:tmail_ui_user/main/pages/app_pages.dart';
import 'package:tmail_ui_user/main/routes/app_routes.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
import 'package:tmail_ui_user/main/utils/asset_preloader.dart';
import 'package:url_strategy/url_strategy.dart';
import 'package:worker_manager/worker_manager.dart';
@@ -33,7 +34,9 @@ Future<void> runTmail() async {
MainBindings().dependencies(),
HiveCacheConfig.instance.setUp(),
Executor().warmUp(log: BuildUtils.isDebugMode),
AppUtils.loadEnvFile()
AppUtils.loadEnvFile(),
if (PlatformInfo.isWeb)
AssetPreloader.preloadHtmlEditorAssets(),
]);
await HiveCacheConfig.instance.initializeEncryptionKey();
+3
View File
@@ -7,10 +7,13 @@ import 'package:tmail_ui_user/features/login/data/network/config/oidc_constant.d
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class AppConfig {
const AppConfig._();
static const int defaultMinInputLengthAutocomplete = 3;
static const int warningAttachmentFileSizeInMegabytes = 10;
static const int defaultLimitAutocomplete = 8;
static const String envFileName = 'env.file';
static const String appDashboardConfigurationPath = "configurations/app_dashboard.json";
static const String appFCMConfigurationPath = "configurations/env.fcm";
static const String iOSKeychainSharingGroupId = 'KUT463DS29.com.linagora.ios.teammail.shared';
+4 -5
View File
@@ -11,17 +11,16 @@ import 'package:tmail_ui_user/main/utils/app_config.dart';
import 'package:url_launcher/url_launcher.dart';
class AppUtils {
static const String envFileName = 'env.file';
const AppUtils._();
static Future<void> loadEnvFile() async {
await dotenv.load(fileName: envFileName);
await dotenv.load(fileName: AppConfig.envFileName);
final mapEnvData = Map<String, String>.from(dotenv.env);
try {
await AppUtils.loadFcmConfigFileToEnv(currentMapEnvData: mapEnvData);
await loadFcmConfigFileToEnv(currentMapEnvData: mapEnvData);
} catch (e) {
logError('AppUtils::loadEnvFile:loadFcmConfigFileToEnv: Exception = $e');
await dotenv.load(fileName: envFileName);
await dotenv.load(fileName: AppConfig.envFileName);
}
}
+23
View File
@@ -0,0 +1,23 @@
import 'package:core/utils/app_logger.dart';
import 'package:html_editor_enhanced/utils/html_editor_constants.dart';
import 'package:html_editor_enhanced/utils/html_editor_utils.dart';
class AssetPreloader {
const AssetPreloader._();
static Future<void> preloadHtmlEditorAssets() async {
try {
await Future.wait([
HtmlEditorUtils.loadAsset(HtmlEditorConstants.summernoteHtmlAssetPath),
HtmlEditorUtils.loadAsset(HtmlEditorConstants.jqueryAssetPath),
HtmlEditorUtils.loadAsset(HtmlEditorConstants.summernoteCSSAssetPath),
HtmlEditorUtils.loadAsset(HtmlEditorConstants.summernoteJSAssetPath),
HtmlEditorUtils.loadAsset(HtmlEditorConstants.summernoteFontEOTAssetPath),
HtmlEditorUtils.loadAsset(HtmlEditorConstants.summernoteFontTTFAssetPath),
]);
} catch (e) {
logError('AssetPreloader::preloadHtmlEditorAssets:Exception = $e');
}
}
}