Remove Plain/Text when create signature

This commit is contained in:
HuyNguyen
2023-02-20 13:54:24 +07:00
committed by Dat Vu
parent cbc3243907
commit 7e8942286a
3 changed files with 15 additions and 100 deletions
@@ -23,7 +23,6 @@ import 'package:tmail_ui_user/features/composer/presentation/controller/rich_tex
import 'package:tmail_ui_user/features/composer/presentation/controller/rich_text_web_controller.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/identity_creator_bindings.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/model/identity_creator_arguments.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/model/signature_type.dart';
import 'package:tmail_ui_user/features/mailbox_creator/domain/model/verification/email_address_validator.dart';
import 'package:tmail_ui_user/features/mailbox_creator/domain/model/verification/empty_name_validator.dart';
import 'package:tmail_ui_user/features/mailbox_creator/domain/state/verify_name_view_state.dart';
@@ -50,7 +49,6 @@ class IdentityCreatorController extends BaseController {
final _uuid = Get.find<Uuid>();
final noneEmailAddress = EmailAddress(null, 'None');
final signatureType = SignatureType.plainText.obs;
final listEmailAddressDefault = <EmailAddress>[].obs;
final listEmailAddressOfReplyTo = <EmailAddress>[].obs;
final errorNameIdentity = Rxn<String>();
@@ -67,12 +65,10 @@ class IdentityCreatorController extends BaseController {
late RichTextWebController richTextWebController;
late RichTextMobileTabletController richTextMobileTabletController;
late HtmlEditorController signatureHtmlEditorController;
TextEditingController? signaturePlainEditorController;
TextEditingController? inputNameIdentityController;
TextEditingController? inputBccIdentityController;
FocusNode? inputNameIdentityFocusNode;
HtmlEditorApi? signatureHtmlEditorMobileController;
String? _nameIdentity;
String? _contentHtmlEditor;
AccountId? accountId;
@@ -93,7 +89,9 @@ class IdentityCreatorController extends BaseController {
void updateContentHtmlEditor(String? text) => _contentHtmlEditor = text;
String? get contentHtmlEditor => _contentHtmlEditor;
HtmlEditorApi? get signatureHtmlEditorMobileController => richTextMobileTabletController.htmlEditorApi;
String? get contentHtmlEditor => _contentHtmlEditor ?? arguments?.identity?.htmlSignature?.value;
IdentityCreatorController(
this._verifyNameInteractor,
@@ -109,7 +107,6 @@ class IdentityCreatorController extends BaseController {
richTextMobileTabletController = RichTextMobileTabletController();
signatureHtmlEditorController =
HtmlEditorController(processNewLineAsBr: true);
signaturePlainEditorController = TextEditingController();
inputNameIdentityController = TextEditingController();
inputBccIdentityController = TextEditingController();
inputNameIdentityFocusNode = FocusNode();
@@ -157,13 +154,9 @@ class IdentityCreatorController extends BaseController {
_nameIdentity = identity?.name ?? '';
inputNameIdentityController?.text = identity?.name ?? '';
if (identity?.textSignature?.value.isNotEmpty == true) {
signaturePlainEditorController?.text = identity?.textSignature?.value ?? '';
}
if (identity?.htmlSignature?.value.isNotEmpty == true) {
updateContentHtmlEditor(identity?.htmlSignature?.value ?? '');
signatureHtmlEditorController.setText(identity?.htmlSignature?.value ?? '');
updateContentHtmlEditor(arguments?.identity?.htmlSignature?.value ?? '');
signatureHtmlEditorController.setText(arguments?.identity?.htmlSignature?.value ?? '');
}
}
@@ -282,15 +275,6 @@ class IdentityCreatorController extends BaseController {
return defaultIdentityIds?.length != allIdentities?.length;
}
void selectSignatureType(BuildContext context, SignatureType newSignatureType) async {
if (newSignatureType == SignatureType.plainText && !BuildUtils.isWeb) {
final signatureText = await _getSignatureHtmlText();
updateContentHtmlEditor(signatureText);
}
clearFocusEditor(context);
signatureType.value = newSignatureType;
}
void updateEmailOfIdentity(EmailAddress? newEmailAddress) {
emailOfIdentity.value = newEmailAddress;
}
@@ -326,7 +310,6 @@ class IdentityCreatorController extends BaseController {
return;
}
final signaturePlainText = signaturePlainEditorController?.text ?? '';
final signatureHtmlText = BuildUtils.isWeb
? contentHtmlEditor
: await _getSignatureHtmlText();
@@ -346,7 +329,6 @@ class IdentityCreatorController extends BaseController {
email: emailOfIdentity.value?.email,
replyTo: replyToAddress,
bcc: bccAddress,
textSignature: Signature(signaturePlainText),
htmlSignature: Signature(signatureHtmlText ?? ''),
sortOrder: sortOrder);
@@ -459,8 +441,6 @@ class IdentityCreatorController extends BaseController {
}
void _disposeWidget() {
signaturePlainEditorController?.dispose();
signaturePlainEditorController = null;
inputNameIdentityFocusNode?.dispose();
inputNameIdentityFocusNode = null;
inputNameIdentityController?.dispose();
@@ -14,7 +14,6 @@ import 'package:rich_text_composer/views/widgets/rich_text_keyboard_toolbar.dart
import 'package:tmail_ui_user/features/composer/presentation/widgets/toolbar_rich_text_builder.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/identity_creator_controller.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/model/identity_creator_arguments.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/model/signature_type.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/widgets/identity_drop_list_field_builder.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/widgets/identity_field_no_editable_builder.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/widgets/identity_input_field_builder.dart';
@@ -235,15 +234,13 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController> {
),
Expanded(
child: Row(mainAxisAlignment: MainAxisAlignment.end, children: [
Obx(() => _buildSignatureButton(context, SignatureType.plainText)),
const SizedBox(width: 10),
Obx(() => _buildSignatureButton(context, SignatureType.htmlTemplate)),
_buildSignatureButton(context)
]),
)
],
),
const SizedBox(height: 8),
Obx(() => PointerInterceptor(
PointerInterceptor(
child: Container(
height: 300,
decoration: BoxDecoration(
@@ -251,16 +248,9 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController> {
border: Border.all(color: AppColor.colorInputBorderCreateMailbox),
color: Colors.white,
),
child: Stack(
children: [
if (controller.signatureType.value == SignatureType.plainText)
_buildSignaturePlainTextTemplate(context)
else
_buildSignatureHtmlTemplate(context)
]
),
child: _buildSignatureHtmlTemplate(context),
),
)),
),
if (_responsiveUtils.isTablet(context) || _responsiveUtils.isMobile(context))...[
Obx(() => Padding(
padding: const EdgeInsets.only(top: 27, bottom: 135),
@@ -371,51 +361,16 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController> {
);
}
Widget _buildSignatureButton(BuildContext context, SignatureType signatureType) {
Widget _buildSignatureButton(BuildContext context) {
return buildButtonWrapText(
signatureType.getTitle(context),
textStyle: TextStyle(
AppLocalizations.of(context).html,
textStyle: const TextStyle(
fontWeight: FontWeight.w500,
fontSize: 14,
color: controller.signatureType.value == signatureType
? AppColor.colorContentEmail
: AppColor.colorHintSearchBar),
bgColor: controller.signatureType.value == signatureType
? AppColor.emailAddressChipColor
: Colors.transparent,
color: AppColor.colorContentEmail),
bgColor: AppColor.emailAddressChipColor,
height: 30,
radius: 10,
onTap: () => controller.selectSignatureType(context, signatureType));
}
Widget _buildSignaturePlainTextTemplate(BuildContext context) {
if (BuildUtils.isWeb) {
return SizedBox(
height: 230,
child: (TextFieldBuilder()
..key(const Key('signature_plain_text_editor'))
..cursorColor(Colors.black)
..addController(controller.signaturePlainEditorController)
..textStyle(const TextStyle(
fontWeight: FontWeight.normal,
color: Colors.black,
fontSize: 16))
..maxLines(null))
.build(),
);
} else {
return(TextFieldBuilder()
..key(const Key('signature_plain_text_editor'))
..cursorColor(Colors.black)
..addController(controller.signaturePlainEditorController)
..textStyle(const TextStyle(
fontWeight: FontWeight.normal,
color: Colors.black,
fontSize: 16))
..minLines(12)
..maxLines(null))
.build();
}
radius: 10);
}
Widget _buildSignatureHtmlTemplate(BuildContext context) {
@@ -1,20 +0,0 @@
import 'package:flutter/cupertino.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
enum SignatureType {
plainText,
htmlTemplate
}
extension SignatureTypeExtension on SignatureType {
String getTitle(BuildContext context) {
switch(this) {
case SignatureType.plainText:
return AppLocalizations.of(context).plain_text;
case SignatureType.htmlTemplate:
return AppLocalizations.of(context).html;
}
}
}