diff --git a/lib/features/manage_account/presentation/profiles/identities/identities_controller.dart b/lib/features/manage_account/presentation/profiles/identities/identities_controller.dart index 57b2c1662..bb2ae09e3 100644 --- a/lib/features/manage_account/presentation/profiles/identities/identities_controller.dart +++ b/lib/features/manage_account/presentation/profiles/identities/identities_controller.dart @@ -53,6 +53,7 @@ class IdentitiesController extends BaseController { final identitySelected = Rxn(); final signatureSelected = Rxn(); + final _htmlSignature = Rxn(); final listAllIdentities = [].obs; IdentitiesController( @@ -162,10 +163,15 @@ class IdentitiesController extends BaseController { } }); } else { + _hideHtmlSignature(); final newIdentityArguments = await push( AppRoutes.identityCreator, arguments: arguments); + if(newIdentityArguments == true) { + _showHtmlSignature(); + } + if (newIdentityArguments is CreateNewIdentityRequest) { _createNewIdentityAction(session, accountId, newIdentityArguments); } else if (newIdentityArguments is EditIdentityRequest) { @@ -181,7 +187,7 @@ class IdentitiesController extends BaseController { CreateNewIdentityRequest identityRequest ) async { if (identityRequest.isDefaultIdentity) { - consumeState(_createNewDefaultIdentityInteractor.execute(session, accountId, identityRequest)); + consumeState(_createNewDefaultIdentityInteractor.execute(session, accountId, identityRequest)); } else { consumeState(_createNewIdentityInteractor.execute(session, accountId, identityRequest)); } @@ -193,6 +199,7 @@ class IdentitiesController extends BaseController { currentOverlayContext!, AppLocalizations.of(currentContext!).you_have_created_a_new_identity); } + _showHtmlSignature(); _refreshAllIdentities(); } @@ -203,6 +210,7 @@ class IdentitiesController extends BaseController { currentOverlayContext!, AppLocalizations.of(currentContext!).you_have_created_a_new_default_identity); } + _showHtmlSignature(); _refreshAllIdentities(); } @@ -287,10 +295,15 @@ class IdentitiesController extends BaseController { } }); } else { + _hideHtmlSignature(); final newIdentityArguments = await push( AppRoutes.identityCreator, arguments: arguments); + if(newIdentityArguments == true) { + _showHtmlSignature(); + } + if (newIdentityArguments is CreateNewIdentityRequest) { _createNewIdentityAction(session, accountId, newIdentityArguments); } else if (newIdentityArguments is EditIdentityRequest) { @@ -318,6 +331,7 @@ class IdentitiesController extends BaseController { currentOverlayContext!, AppLocalizations.of(currentContext!).you_are_changed_your_identity_successfully); } + _showHtmlSignature(); _refreshAllIdentities(); } @@ -325,4 +339,13 @@ class IdentitiesController extends BaseController { ImagePaths get imagePaths => _imagePaths; bool get isSignatureShow => identitySelected.value != null; + + bool get isShowHtmlSignature => _htmlSignature.value ?? true; + + void _hideHtmlSignature() async { + await Future.delayed(const Duration(milliseconds: 100)); + _htmlSignature.value = false; + } + + void _showHtmlSignature() => _htmlSignature.value = true; } \ No newline at end of file diff --git a/lib/features/manage_account/presentation/profiles/identities/widgets/identities_radio_list_builder.dart b/lib/features/manage_account/presentation/profiles/identities/widgets/identities_radio_list_builder.dart index a1557c800..3d5dcf291 100644 --- a/lib/features/manage_account/presentation/profiles/identities/widgets/identities_radio_list_builder.dart +++ b/lib/features/manage_account/presentation/profiles/identities/widgets/identities_radio_list_builder.dart @@ -49,7 +49,7 @@ class IdentitiesRadioListBuilder extends StatelessWidget { _buildListIdentityView(context), Container(height: 1, color: AppColor.attachmentFileBorderColor), Obx(() { - if (controller.signatureSelected.value != null) { + if (controller.isShowHtmlSignature) { return SignatureBuilder(controller.signatureSelected.value!); } else { return _buildLoadingView();