TF-1194 Add another Rx variable and function check signature shown to identitiesController

This commit is contained in:
sherlockvn
2022-12-27 14:23:37 +07:00
committed by Dat H. Pham
parent 094752aa9c
commit b60a86fa62
@@ -44,6 +44,7 @@ class IdentitiesController extends BaseController {
final DeleteIdentityInteractor _deleteIdentityInteractor; final DeleteIdentityInteractor _deleteIdentityInteractor;
final EditIdentityInteractor _editIdentityInteractor; final EditIdentityInteractor _editIdentityInteractor;
final selectedIndex = Rxn<int>();
final identitySelected = Rxn<Identity>(); final identitySelected = Rxn<Identity>();
final listAllIdentities = <Identity>[].obs; final listAllIdentities = <Identity>[].obs;
final listSelectedIdentities = <Identity>[].obs; final listSelectedIdentities = <Identity>[].obs;
@@ -82,12 +83,11 @@ class IdentitiesController extends BaseController {
(success) { (success) {
if (success is GetAllIdentitiesSuccess) { if (success is GetAllIdentitiesSuccess) {
if (success.identities?.isNotEmpty == true) { if (success.identities?.isNotEmpty == true) {
_addNewIdentityAsAll(); final newListIdentities = success.identities!
final newListIdentities = success.identities!
.where((identity) => identity.mayDelete == true) .where((identity) => identity.mayDelete == true)
.toList(); .toList();
listAllIdentities.addAll(newListIdentities); listAllIdentities.addAll(newListIdentities);
selectIdentity(listAllIdentities.first); selectIdentity(0);
} }
} else if (success is CreateNewIdentitySuccess) { } else if (success is CreateNewIdentitySuccess) {
_createNewIdentitySuccess(success); _createNewIdentitySuccess(success);
@@ -121,9 +121,8 @@ class IdentitiesController extends BaseController {
} }
void _refreshAllIdentities() { void _refreshAllIdentities() {
identitySelected.value = null; selectedIndex.value = null;
listAllIdentities.clear(); listAllIdentities.clear();
listSelectedIdentities.clear();
final accountId = _accountDashBoardController.accountId.value; final accountId = _accountDashBoardController.accountId.value;
if (accountId != null) { if (accountId != null) {
@@ -131,26 +130,10 @@ class IdentitiesController extends BaseController {
} }
} }
void _addNewIdentityAsAll() { void selectIdentity(int? index) {
if (currentContext != null) { selectedIndex.value = index;
listAllIdentities.add(Identity( if (selectedIndex.value != null) {
id: idIdentityAll, identitySelected.value = listAllIdentities[selectedIndex.value!];
name: AppLocalizations.of(currentContext!).all_identities));
}
}
void selectIdentity(Identity? newIdentity) {
identitySelected.value = newIdentity;
if (newIdentity != null) {
_updateListSelectedIdentities(newIdentity);
}
}
void _updateListSelectedIdentities(Identity newIdentity) {
if (newIdentity.id == idIdentityAll) {
listSelectedIdentities.value = listAllIdentities.sublist(1);
} else {
listSelectedIdentities.value = [newIdentity];
} }
} }
@@ -343,4 +326,10 @@ class IdentitiesController extends BaseController {
_refreshAllIdentities(); _refreshAllIdentities();
} }
ImagePaths get imagePaths => _imagePaths;
bool isSignatureShow() {
return selectedIndex.value!= null && selectedIndex.value! >= 0;
}
} }