TF-2667 Fix crash when click on From me in search filter

This commit is contained in:
dab246
2024-03-22 01:38:21 +07:00
committed by Dat H. Pham
parent 70986542ee
commit 84ce77a46f
2 changed files with 6 additions and 7 deletions
@@ -29,6 +29,7 @@ class ContactController extends BaseController {
ContactSuggestionSource _contactSuggestionSource = ContactSuggestionSource.tMailContact; ContactSuggestionSource _contactSuggestionSource = ContactSuggestionSource.tMailContact;
final searchQuery = SearchQuery.initial().obs; final searchQuery = SearchQuery.initial().obs;
final session = Rxn<Session>();
final listContactSearched = RxList<EmailAddress>(); final listContactSearched = RxList<EmailAddress>();
final scrollListViewController = ScrollController(); final scrollListViewController = ScrollController();
@@ -38,7 +39,6 @@ class ContactController extends BaseController {
final Debouncer<String> _deBouncerTime = Debouncer<String>(const Duration(milliseconds: 300), initialValue: ''); final Debouncer<String> _deBouncerTime = Debouncer<String>(const Duration(milliseconds: 300), initialValue: '');
AccountId? _accountId; AccountId? _accountId;
Session? session;
ContactArguments? arguments; ContactArguments? arguments;
EmailAddress? contactSelected; EmailAddress? contactSelected;
@@ -63,14 +63,14 @@ class ContactController extends BaseController {
textInputSearchFocus.requestFocus(); textInputSearchFocus.requestFocus();
if (arguments != null) { if (arguments != null) {
_accountId = arguments!.accountId; _accountId = arguments!.accountId;
session = arguments!.session; session.value = arguments!.session;
final listContactSelected = arguments!.listContactSelected; final listContactSelected = arguments!.listContactSelected;
log('ContactController::onReady(): arguments: $arguments'); log('ContactController::onReady(): arguments: $arguments');
log('ContactController::onReady(): listContactSelected: $listContactSelected'); log('ContactController::onReady(): listContactSelected: $listContactSelected');
if (listContactSelected.isNotEmpty) { if (listContactSelected.isNotEmpty) {
contactSelected = EmailAddress(listContactSelected.first, listContactSelected.first); contactSelected = EmailAddress(listContactSelected.first, listContactSelected.first);
} }
injectAutoCompleteBindings(session, _accountId); injectAutoCompleteBindings(session.value, _accountId);
} }
if (PlatformInfo.isMobile) { if (PlatformInfo.isMobile) {
Future.delayed( Future.delayed(
@@ -62,8 +62,6 @@ class ContactView extends GetWidget<ContactController> {
searchInputController: controller.textInputSearchController, searchInputController: controller.textInputSearchController,
hasBackButton: false, hasBackButton: false,
hasSearchButton: true, hasSearchButton: true,
padding: EdgeInsets.zero,
heightSearchBar: 44,
margin: ContactUtils.getPaddingSearchInputForm(context, controller.responsiveUtils), margin: ContactUtils.getPaddingSearchInputForm(context, controller.responsiveUtils),
decoration: const BoxDecoration( decoration: const BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(10)), borderRadius: BorderRadius.all(Radius.circular(10)),
@@ -80,10 +78,11 @@ class ContactView extends GetWidget<ContactController> {
), ),
if (PlatformInfo.isWeb) if (PlatformInfo.isWeb)
Obx(() { Obx(() {
if (controller.session?.username.value.isNotEmpty == true) { final username = controller.session.value?.username.value ?? '';
if (username.isNotEmpty) {
final userEmailAddress = EmailAddress( final userEmailAddress = EmailAddress(
AppLocalizations.of(context).me, AppLocalizations.of(context).me,
controller.session?.username.value); username);
final fromMeSuggestionEmailAddress = SuggestionEmailAddress(userEmailAddress, state: SuggestionEmailState.valid); final fromMeSuggestionEmailAddress = SuggestionEmailAddress(userEmailAddress, state: SuggestionEmailState.valid);
return Padding( return Padding(
padding: const EdgeInsets.symmetric(horizontal: 4), padding: const EdgeInsets.symmetric(horizontal: 4),