TF-2666 Improve new UI for edit recipient card on web

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-07-25 11:09:31 +07:00
committed by Dat H. Pham
parent 6653551609
commit 7f7dba14fb
3 changed files with 59 additions and 58 deletions
@@ -90,71 +90,62 @@ extension HandleEditRecipientExtension on ComposerController {
listToEmailAddress.remove(emailAddress);
toAddressExpandMode.value = ExpandMode.EXPAND;
toAddressExpandMode.refresh();
toEmailAddressController.text = emailAddress.emailAddress;
toEmailAddressController.value = toEmailAddressController.value.copyWith(
_setTextAndFocus(
controller: toEmailAddressController,
focusNode: toAddressFocusNode,
text: emailAddress.emailAddress,
selection: TextSelection(
baseOffset: emailAddress.emailAddress.length,
extentOffset: emailAddress.emailAddress.length,
),
composing: TextRange.empty,
);
toAddressFocusNode?.requestFocus();
break;
case PrefixEmailAddress.cc:
listCcEmailAddress.remove(emailAddress);
ccAddressExpandMode.value = ExpandMode.EXPAND;
ccAddressExpandMode.refresh();
ccEmailAddressController.text = emailAddress.emailAddress;
ccEmailAddressController.value = ccEmailAddressController.value.copyWith(
_setTextAndFocus(
controller: ccEmailAddressController,
focusNode: ccAddressFocusNode,
text: emailAddress.emailAddress,
selection: TextSelection(
baseOffset: emailAddress.emailAddress.length,
extentOffset: emailAddress.emailAddress.length,
),
composing: TextRange.empty,
);
ccAddressFocusNode?.requestFocus();
break;
case PrefixEmailAddress.bcc:
listBccEmailAddress.remove(emailAddress);
bccAddressExpandMode.value = ExpandMode.EXPAND;
bccAddressExpandMode.refresh();
bccEmailAddressController.text = emailAddress.emailAddress;
bccEmailAddressController.value = bccEmailAddressController.value.copyWith(
_setTextAndFocus(
controller: bccEmailAddressController,
focusNode: bccAddressFocusNode,
text: emailAddress.emailAddress,
selection: TextSelection(
baseOffset: emailAddress.emailAddress.length,
extentOffset: emailAddress.emailAddress.length,
),
composing: TextRange.empty,
);
bccAddressFocusNode?.requestFocus();
break;
case PrefixEmailAddress.replyTo:
listReplyToEmailAddress.remove(emailAddress);
replyToAddressExpandMode.value = ExpandMode.EXPAND;
replyToAddressExpandMode.refresh();
replyToEmailAddressController.text = emailAddress.emailAddress;
replyToEmailAddressController.value = replyToEmailAddressController.value.copyWith(
_setTextAndFocus(
controller: replyToEmailAddressController,
focusNode: replyToAddressFocusNode,
text: emailAddress.emailAddress,
selection: TextSelection(
baseOffset: emailAddress.emailAddress.length,
extentOffset: emailAddress.emailAddress.length,
),
composing: TextRange.empty,
);
replyToAddressFocusNode?.requestFocus();
break;
default:
break;
}
}
void _setTextAndFocus({
required TextEditingController controller,
required FocusNode? focusNode,
required String text,
}) {
controller.text = text;
controller.selection = const TextSelection.collapsed(offset: -1);
WidgetsBinding.instance.addPostFrameCallback((_) {
focusNode?.requestFocus();
Future.delayed(const Duration(milliseconds: 150), () {
controller.selection = TextSelection.collapsed(offset: text.length);
},);
});
}
Future<void> _createRuleFromEmailAddress(EmailAddress emailAddress) async {
await mailboxDashBoardController.openCreateEmailRuleView(
emailAddress: emailAddress,