TF-2667 Fix width size inline image in email view after send email
This commit is contained in:
@@ -63,7 +63,8 @@ class DownloadClient {
|
|||||||
'bytesData': bytesData,
|
'bytesData': bytesData,
|
||||||
'mimeType': 'image/$fileExtension',
|
'mimeType': 'image/$fileExtension',
|
||||||
'cid': cid,
|
'cid': cid,
|
||||||
'fileName': fileName
|
'fileName': fileName,
|
||||||
|
'maxWidth': maxWidth
|
||||||
});
|
});
|
||||||
|
|
||||||
return base64Uri;
|
return base64Uri;
|
||||||
@@ -77,7 +78,8 @@ class DownloadClient {
|
|||||||
'bytesData': bytesDataCompressed,
|
'bytesData': bytesDataCompressed,
|
||||||
'mimeType': 'image/$fileExtension',
|
'mimeType': 'image/$fileExtension',
|
||||||
'cid': cid,
|
'cid': cid,
|
||||||
'fileName': fileName
|
'fileName': fileName,
|
||||||
|
'maxWidth': maxWidth
|
||||||
});
|
});
|
||||||
|
|
||||||
return base64Uri;
|
return base64Uri;
|
||||||
@@ -86,7 +88,8 @@ class DownloadClient {
|
|||||||
'bytesData': bytesData,
|
'bytesData': bytesData,
|
||||||
'mimeType': 'image/$fileExtension',
|
'mimeType': 'image/$fileExtension',
|
||||||
'cid': cid,
|
'cid': cid,
|
||||||
'fileName': fileName
|
'fileName': fileName,
|
||||||
|
'maxWidth': maxWidth
|
||||||
});
|
});
|
||||||
|
|
||||||
return base64Uri;
|
return base64Uri;
|
||||||
@@ -103,11 +106,14 @@ class DownloadClient {
|
|||||||
var mimeType = entryParam['mimeType'];
|
var mimeType = entryParam['mimeType'];
|
||||||
final cid = entryParam['cid'];
|
final cid = entryParam['cid'];
|
||||||
var fileName = entryParam['fileName'];
|
var fileName = entryParam['fileName'];
|
||||||
|
var maxWidth = entryParam['maxWidth'] != null
|
||||||
|
? '${entryParam['maxWidth']}px'
|
||||||
|
: '100%';
|
||||||
final base64Data = base64Encode(bytesData);
|
final base64Data = base64Encode(bytesData);
|
||||||
if (fileName.contains('.')) {
|
if (fileName.contains('.')) {
|
||||||
fileName = fileName.split('.').first;
|
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;
|
return base64Uri;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1587,7 +1587,7 @@ class ComposerController extends BaseController with DragDropFileMixin {
|
|||||||
if (responsiveUtils.isMobile(context)) {
|
if (responsiveUtils.isMobile(context)) {
|
||||||
maxWithEditor = maxWith - 40;
|
maxWithEditor = maxWith - 40;
|
||||||
} else {
|
} else {
|
||||||
maxWithEditor = maxWith - 120;
|
maxWithEditor = maxWith - 70;
|
||||||
}
|
}
|
||||||
|
|
||||||
consumeState(_localImagePickerInteractor.execute());
|
consumeState(_localImagePickerInteractor.execute());
|
||||||
@@ -2000,8 +2000,15 @@ class ComposerController extends BaseController with DragDropFileMixin {
|
|||||||
|
|
||||||
void onLocalFileDropZoneListener({
|
void onLocalFileDropZoneListener({
|
||||||
required BuildContext context,
|
required BuildContext context,
|
||||||
required DropDoneDetails details
|
required DropDoneDetails details,
|
||||||
|
required double maxWidth
|
||||||
}) async {
|
}) async {
|
||||||
|
if (responsiveUtils.isMobile(context)) {
|
||||||
|
maxWithEditor = maxWidth - 40;
|
||||||
|
} else {
|
||||||
|
maxWithEditor = maxWidth - 70;
|
||||||
|
}
|
||||||
|
|
||||||
final listFileInfo = await onDragDone(context: context, details: details);
|
final listFileInfo = await onDragDone(context: context, details: details);
|
||||||
|
|
||||||
if (listFileInfo.isEmpty && context.mounted) {
|
if (listFileInfo.isEmpty && context.mounted) {
|
||||||
|
|||||||
@@ -248,7 +248,8 @@ class ComposerView extends GetWidget<ComposerController> {
|
|||||||
onLocalFileDropZoneListener: (details) =>
|
onLocalFileDropZoneListener: (details) =>
|
||||||
controller.onLocalFileDropZoneListener(
|
controller.onLocalFileDropZoneListener(
|
||||||
context: context,
|
context: context,
|
||||||
details: details
|
details: details,
|
||||||
|
maxWidth: constraintsEditor.maxWidth,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@@ -503,7 +504,8 @@ class ComposerView extends GetWidget<ComposerController> {
|
|||||||
onLocalFileDropZoneListener: (details) =>
|
onLocalFileDropZoneListener: (details) =>
|
||||||
controller.onLocalFileDropZoneListener(
|
controller.onLocalFileDropZoneListener(
|
||||||
context: context,
|
context: context,
|
||||||
details: details
|
details: details,
|
||||||
|
maxWidth: constraintsEditor.maxWidth,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@@ -731,7 +733,8 @@ class ComposerView extends GetWidget<ComposerController> {
|
|||||||
onLocalFileDropZoneListener: (details) =>
|
onLocalFileDropZoneListener: (details) =>
|
||||||
controller.onLocalFileDropZoneListener(
|
controller.onLocalFileDropZoneListener(
|
||||||
context: context,
|
context: context,
|
||||||
details: details
|
details: details,
|
||||||
|
maxWidth: constraintsEditor.maxWidth,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -279,11 +279,11 @@ class RichTextWebController extends BaseRichTextController {
|
|||||||
menuOrderListController.hideMenu();
|
menuOrderListController.hideMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
void insertImageAsBase64({required PlatformFile platformFile}) {
|
void insertImageAsBase64({required PlatformFile platformFile, int? maxWidth}) {
|
||||||
if (platformFile.bytes != null) {
|
if (platformFile.bytes != null) {
|
||||||
final base64Data = base64Encode(platformFile.bytes!);
|
final base64Data = base64Encode(platformFile.bytes!);
|
||||||
editorController.insertHtml(
|
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 {
|
} else {
|
||||||
logError("RichTextWebController::insertImageAsBase64: bytes is null");
|
logError("RichTextWebController::insertImageAsBase64: bytes is null");
|
||||||
|
|||||||
@@ -546,7 +546,7 @@ class IdentityCreatorController extends BaseController {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (PlatformInfo.isWeb) {
|
if (PlatformInfo.isWeb) {
|
||||||
richTextWebController.insertImageAsBase64(platformFile: file);
|
richTextWebController.insertImageAsBase64(platformFile: file, maxWidth: maxWidth);
|
||||||
} else if (PlatformInfo.isMobile) {
|
} else if (PlatformInfo.isMobile) {
|
||||||
richTextMobileTabletController.insertImageData(platformFile: file, maxWidth: maxWidth);
|
richTextMobileTabletController.insertImageData(platformFile: file, maxWidth: maxWidth);
|
||||||
if (file.path != null) {
|
if (file.path != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user