From 6b820270906813aea3c21cf174a455de797fab87 Mon Sep 17 00:00:00 2001 From: dab246 Date: Fri, 22 Mar 2024 03:02:07 +0700 Subject: [PATCH] TF-2667 Fix width size inline image in email view after send email --- .../lib/data/network/download/download_client.dart | 14 ++++++++++---- .../composer/presentation/composer_controller.dart | 11 +++++++++-- .../composer/presentation/composer_view_web.dart | 9 ++++++--- .../controller/rich_text_web_controller.dart | 4 ++-- .../presentation/identity_creator_controller.dart | 2 +- 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/core/lib/data/network/download/download_client.dart b/core/lib/data/network/download/download_client.dart index 781eeab11..8686739f1 100644 --- a/core/lib/data/network/download/download_client.dart +++ b/core/lib/data/network/download/download_client.dart @@ -63,7 +63,8 @@ class DownloadClient { 'bytesData': bytesData, 'mimeType': 'image/$fileExtension', 'cid': cid, - 'fileName': fileName + 'fileName': fileName, + 'maxWidth': maxWidth }); return base64Uri; @@ -77,7 +78,8 @@ class DownloadClient { 'bytesData': bytesDataCompressed, 'mimeType': 'image/$fileExtension', 'cid': cid, - 'fileName': fileName + 'fileName': fileName, + 'maxWidth': maxWidth }); return base64Uri; @@ -86,7 +88,8 @@ class DownloadClient { 'bytesData': bytesData, 'mimeType': 'image/$fileExtension', 'cid': cid, - 'fileName': fileName + 'fileName': fileName, + 'maxWidth': maxWidth }); return base64Uri; @@ -103,11 +106,14 @@ class DownloadClient { var mimeType = entryParam['mimeType']; final cid = entryParam['cid']; var fileName = entryParam['fileName']; + var maxWidth = entryParam['maxWidth'] != null + ? '${entryParam['maxWidth']}px' + : '100%'; final base64Data = base64Encode(bytesData); if (fileName.contains('.')) { fileName = fileName.split('.').first; } - final base64Uri = '$fileName'; + final base64Uri = '$fileName'; return base64Uri; } } \ No newline at end of file diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index bce051211..835b82e30 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -1587,7 +1587,7 @@ class ComposerController extends BaseController with DragDropFileMixin { if (responsiveUtils.isMobile(context)) { maxWithEditor = maxWith - 40; } else { - maxWithEditor = maxWith - 120; + maxWithEditor = maxWith - 70; } consumeState(_localImagePickerInteractor.execute()); @@ -2000,8 +2000,15 @@ class ComposerController extends BaseController with DragDropFileMixin { void onLocalFileDropZoneListener({ required BuildContext context, - required DropDoneDetails details + required DropDoneDetails details, + required double maxWidth }) async { + if (responsiveUtils.isMobile(context)) { + maxWithEditor = maxWidth - 40; + } else { + maxWithEditor = maxWidth - 70; + } + final listFileInfo = await onDragDone(context: context, details: details); if (listFileInfo.isEmpty && context.mounted) { diff --git a/lib/features/composer/presentation/composer_view_web.dart b/lib/features/composer/presentation/composer_view_web.dart index 5433d5740..394f99125 100644 --- a/lib/features/composer/presentation/composer_view_web.dart +++ b/lib/features/composer/presentation/composer_view_web.dart @@ -248,7 +248,8 @@ class ComposerView extends GetWidget { onLocalFileDropZoneListener: (details) => controller.onLocalFileDropZoneListener( context: context, - details: details + details: details, + maxWidth: constraintsEditor.maxWidth, ), ) ), @@ -503,7 +504,8 @@ class ComposerView extends GetWidget { onLocalFileDropZoneListener: (details) => controller.onLocalFileDropZoneListener( context: context, - details: details + details: details, + maxWidth: constraintsEditor.maxWidth, ), ) ), @@ -731,7 +733,8 @@ class ComposerView extends GetWidget { onLocalFileDropZoneListener: (details) => controller.onLocalFileDropZoneListener( context: context, - details: details + details: details, + maxWidth: constraintsEditor.maxWidth, ), ) ), diff --git a/lib/features/composer/presentation/controller/rich_text_web_controller.dart b/lib/features/composer/presentation/controller/rich_text_web_controller.dart index bb8bd07fb..76f5cf473 100644 --- a/lib/features/composer/presentation/controller/rich_text_web_controller.dart +++ b/lib/features/composer/presentation/controller/rich_text_web_controller.dart @@ -279,11 +279,11 @@ class RichTextWebController extends BaseRichTextController { menuOrderListController.hideMenu(); } - void insertImageAsBase64({required PlatformFile platformFile}) { + void insertImageAsBase64({required PlatformFile platformFile, int? maxWidth}) { if (platformFile.bytes != null) { final base64Data = base64Encode(platformFile.bytes!); editorController.insertHtml( - 'Image in my signature' + 'Image in my signature' ); } else { logError("RichTextWebController::insertImageAsBase64: bytes is null"); diff --git a/lib/features/identity_creator/presentation/identity_creator_controller.dart b/lib/features/identity_creator/presentation/identity_creator_controller.dart index a76fd9364..11e0d8ca2 100644 --- a/lib/features/identity_creator/presentation/identity_creator_controller.dart +++ b/lib/features/identity_creator/presentation/identity_creator_controller.dart @@ -546,7 +546,7 @@ class IdentityCreatorController extends BaseController { } } else { if (PlatformInfo.isWeb) { - richTextWebController.insertImageAsBase64(platformFile: file); + richTextWebController.insertImageAsBase64(platformFile: file, maxWidth: maxWidth); } else if (PlatformInfo.isMobile) { richTextMobileTabletController.insertImageData(platformFile: file, maxWidth: maxWidth); if (file.path != null) {