Remove Plain/Text when create signature
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user