TF-2667 Fix width size inline image in email view after send email

This commit is contained in:
dab246
2024-03-22 03:02:07 +07:00
committed by Dat H. Pham
parent 31ff28d7d2
commit 6b82027090
5 changed files with 28 additions and 12 deletions
@@ -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 = '<img src="${HtmlUtils.convertBase64ToImageResourceData(base64Data: base64Data, mimeType: mimeType)}" alt="$fileName" id="cid:$cid" style="max-width: 100%;" />';
final base64Uri = '<img src="${HtmlUtils.convertBase64ToImageResourceData(base64Data: base64Data, mimeType: mimeType)}" alt="$fileName" id="cid:$cid" style="max-width: $maxWidth;" />';
return base64Uri;
}
}
@@ -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) {
@@ -248,7 +248,8 @@ class ComposerView extends GetWidget<ComposerController> {
onLocalFileDropZoneListener: (details) =>
controller.onLocalFileDropZoneListener(
context: context,
details: details
details: details,
maxWidth: constraintsEditor.maxWidth,
),
)
),
@@ -503,7 +504,8 @@ class ComposerView extends GetWidget<ComposerController> {
onLocalFileDropZoneListener: (details) =>
controller.onLocalFileDropZoneListener(
context: context,
details: details
details: details,
maxWidth: constraintsEditor.maxWidth,
),
)
),
@@ -731,7 +733,8 @@ class ComposerView extends GetWidget<ComposerController> {
onLocalFileDropZoneListener: (details) =>
controller.onLocalFileDropZoneListener(
context: context,
details: details
details: details,
maxWidth: constraintsEditor.maxWidth,
),
)
),
@@ -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(
'<img src="${HtmlUtils.convertBase64ToImageResourceData(base64Data: base64Data, mimeType: 'image/${platformFile.extension}')}" data-filename="${platformFile.name}" alt="Image in my signature" style="max-width: 100%;"/>'
'<img src="${HtmlUtils.convertBase64ToImageResourceData(base64Data: base64Data, mimeType: 'image/${platformFile.extension}')}" data-filename="${platformFile.name}" alt="Image in my signature" style="max-width: ${maxWidth != null ? '${maxWidth}px' : '100%'};"/>'
);
} else {
logError("RichTextWebController::insertImageAsBase64: bytes is null");
@@ -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) {