refacto: Clean up processes and business code in views
On remarque des traitements, mapping d’objets et de la logique métier en général dans la construction de la vue.
Exemple de situation :
import_g1_v1.dart
final Map balance = status.data?[0] ?? {};
final String idtyStatus = status.data?[1];
final String myIdtyStatus = status.data?[2];
final bool hasConsumer = status.data?[3] ?? false;
if (balance['transferableBalance'] != 0 && !hasConsumer) {
canValidate = true;
validationStatus = '';
} else {
canValidate = false;
validationStatus = hasConsumer
? 'youMustWaitBeforeCashoutThisAccount'.tr(args: ['X'])
: 'thisAccountIsEmpty'.tr();
}
...
Ici on se retrouve avec du mapping de variables en fonction du retour de la méthode Future. Puis du traitement métier est écrit ci-après, tout cela encapsulé dans le builder du widget FutureBuilder. Cela a pour conséquence d’alourdir la compréhension de la vue et de la construction de cette dernière.
Autres exemples :
transaction_in_progress.dart
Actions à mettre en place et recommandations : décorréler la construction de la vue des traitements métiers en retour d’une fonction asynchrone retourner depuis le Future un objet qui peut être traité directement par la vue sans traitement ni logique métier.