Skip to content

Commit

Permalink
fixup! TF-3035 Restore identity from draft
Browse files Browse the repository at this point in the history
  • Loading branch information
tddang-linagora committed Sep 13, 2024
1 parent 34f3665 commit bc57fa2
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 31 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import 'package:core/data/network/dio_client.dart';
import 'package:core/presentation/utils/html_transformer/base/dom_transformer.dart';
import 'package:html/dom.dart';

class HideDraftSignatureTransformer extends DomTransformer {

const HideDraftSignatureTransformer();

@override
Future<void> process({
required Document document,
required DioClient dioClient,
Map<String, String>? mapUrlDownloadCID
}) async {
final signature = document.querySelector('div.tmail-signature');
if (signature == null) return;
final currentStyle = signature.attributes['style']?.trim();
if (currentStyle == null) {
signature.attributes['style'] = 'display: none;';
} else if (currentStyle.endsWith(';')) {
signature.attributes['style'] = '$currentStyle display: none;';
} else {
signature.attributes['style'] = '$currentStyle; display: none;';
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import 'package:core/presentation/utils/html_transformer/dom/add_target_blank_in
import 'package:core/presentation/utils/html_transformer/dom/add_tooltip_link_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/blockcode_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/blockquoted_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/hide_draft_signature_transformer.dart';
import 'package:core/presentation/utils/html_transformer/dom/image_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/remove_collapsed_signature_button_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/remove_lazy_loading_for_background_image_transformers.dart';
Expand Down Expand Up @@ -47,6 +48,9 @@ class TransformConfiguration {
]);

factory TransformConfiguration.forDraftsEmail() => TransformConfiguration.fromDomTransformers([const ImageTransformer()]);
factory TransformConfiguration.forEditDraftsEmail() => TransformConfiguration.fromDomTransformers([
...TransformConfiguration.forDraftsEmail().domTransformers,
const HideDraftSignatureTransformer()]);

factory TransformConfiguration.forPreviewEmailOnWeb() => TransformConfiguration.create(
customDomTransformers: [
Expand Down
35 changes: 4 additions & 31 deletions lib/features/composer/presentation/composer_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1401,7 +1401,7 @@ class ComposerController extends BaseController with DragDropFileMixin implement
accountId,
emailId,
mailboxDashBoardController.baseDownloadUrl,
TransformConfiguration.forDraftsEmail(),
TransformConfiguration.forEditDraftsEmail(),
additionalProperties: Properties({
IndividualHeaderIdentifier.identityHeader.value}),
));
Expand All @@ -1423,10 +1423,6 @@ class ComposerController extends BaseController with DragDropFileMixin implement
attachments: success.attachments,
inlineImages: success.inlineImages);

if (composerArguments.value?.emailActionType == EmailActionType.editDraft) {
success = _hideSignature(success);
}

emailContentsViewState.value = Right(success);

if (composerArguments.value?.emailActionType == EmailActionType.editDraft) {
Expand Down Expand Up @@ -1455,31 +1451,6 @@ class ComposerController extends BaseController with DragDropFileMixin implement
}
}

GetEmailContentSuccess _hideSignature(GetEmailContentSuccess success) {
try {
final htmlContent = success.htmlEmailContent;
final emailDocument = parse(htmlContent);
final signature = emailDocument.querySelector('div.tmail-signature');
if (signature == null) return success;
final currentStyle = signature.attributes['style']?.trim();
if (currentStyle == null) {
signature.attributes['style'] = 'display: none;';
} else if (currentStyle.endsWith(';')) {
signature.attributes['style'] = '$currentStyle display: none;';
} else {
signature.attributes['style'] = '$currentStyle; display: none;';
}
return GetEmailContentSuccess(
htmlEmailContent: emailDocument.outerHtml,
emailCurrent: success.emailCurrent,
attachments: success.attachments,
inlineImages: success.inlineImages);
} catch (e) {
logError('ComposerController::_hideSignature: $e');
return success;
}
}

void _transformHtmlEmailContent(String? emailContent) {
emailContentsViewState(Right(TransformHtmlEmailContentLoading()));
if (emailContent?.isEmpty == true) {
Expand Down Expand Up @@ -1963,7 +1934,9 @@ class ComposerController extends BaseController with DragDropFileMixin implement
if (identitySelected.value == null) {
_getAllIdentities();
} else {
_selectIdentity(identitySelected.value);
if (composerArguments.value?.emailActionType != EmailActionType.editDraft) {
_selectIdentity(identitySelected.value);
}
_autoFocusFieldWhenLauncher();
}
}
Expand Down

0 comments on commit bc57fa2

Please sign in to comment.