TF-296 Fix upload file on browser

This commit is contained in:
dab246
2022-03-03 12:05:14 +07:00
committed by Dat H. Pham
parent 025bc53790
commit a24a4a2bfd
9 changed files with 108 additions and 50 deletions
@@ -7,8 +7,8 @@ import 'package:device_info_plus/device_info_plus.dart';
import 'package:enough_html_editor/enough_html_editor.dart';
import 'package:file_picker/file_picker.dart';
import 'package:fk_user_agent/fk_user_agent.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:html_editor_enhanced/html_editor.dart' as HtmlEditorBrowser;
import 'package:http_parser/http_parser.dart';
@@ -64,7 +64,6 @@ class ComposerController extends BaseController {
final AppToast _appToast;
final ImagePaths _imagePaths;
final Uuid _uuid;
final TextEditingController subjectEmailInputController;
final LocalFilePickerInteractor _localFilePickerInteractor;
final UploadMultipleAttachmentInteractor _uploadMultipleAttachmentInteractor;
final DeviceInfoPlugin _deviceInfoPlugin;
@@ -80,6 +79,7 @@ class ComposerController extends BaseController {
HtmlEditorApi? htmlEditorApi;
final HtmlEditorBrowser.HtmlEditorController htmlControllerBrowser = HtmlEditorBrowser.HtmlEditorController();
final subjectEmailInputController = TextEditingController();
final toEmailAddressController = TextEditingController();
final ccEmailAddressController = TextEditingController();
final bccEmailAddressController = TextEditingController();
@@ -109,7 +109,6 @@ class ComposerController extends BaseController {
this._imagePaths,
this._uuid,
this._deviceInfoPlugin,
this.subjectEmailInputController,
this._localFilePickerInteractor,
this._uploadMultipleAttachmentInteractor,
this._saveEmailAsDraftsInteractor,
@@ -136,12 +135,9 @@ class ComposerController extends BaseController {
@override
void onClose() {
subjectEmailInputController.dispose();
toEmailAddressController.dispose();
ccEmailAddressController.dispose();
bccEmailAddressController.dispose();
htmlControllerBrowser.clearFocus();
super.onClose();
}
@@ -359,6 +355,8 @@ class ComposerController extends BaseController {
}
void sendEmailAction(BuildContext context) async {
clearFocusEditor(context);
if (isEnableEmailSendButton.value) {
final arguments = composerArguments.value;
if (arguments != null) {
@@ -416,13 +414,25 @@ class ComposerController extends BaseController {
}
void openPickAttachmentMenu(BuildContext context, List<Widget> actionTiles) {
(ContextMenuBuilder(context)
..addHeader(
(ContextMenuHeaderBuilder(Key('attachment_picker_context_menu_header_builder'))
clearFocusEditor(context);
(ContextMenuBuilder(context)
..addHeader((ContextMenuHeaderBuilder(Key('attachment_picker_context_menu_header_builder'))
..addLabel(AppLocalizations.of(context).pick_attachments))
.build())
..addTiles(actionTiles))
.build();
..addTiles(actionTiles)
..addOnCloseContextMenuAction(() => popBack()))
.build();
}
void openPickAttachmentsForWeb(BuildContext context, RelativeRect? position, List<PopupMenuEntry> popupMenuItems) async {
await showMenu(
context: context,
position: position ?? RelativeRect.fromLTRB(16, 40, 16, 16),
color: Colors.white,
elevation: 5,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(14)),
items: popupMenuItems);
}
void openFilePickerByType(BuildContext context, FileType fileType) async {
@@ -525,7 +535,9 @@ class ComposerController extends BaseController {
return false;
}
void saveEmailAsDrafts() async {
void saveEmailAsDrafts(BuildContext context) async {
clearFocusEditor(context);
final arguments = composerArguments.value;
if (arguments != null && Get.context != null) {
final isChanged = await _isEmailChanged(arguments);
@@ -583,7 +595,14 @@ class ComposerController extends BaseController {
return '';
}
void backToEmailViewAction() {
void clearFocusEditor(BuildContext context) {
if (!kIsWeb) {
htmlEditorApi?.unfocus(context);
}
}
void backToEmailViewAction(BuildContext context) {
clearFocusEditor(context);
popBack();
}
}