feat: auto-activation après paiement Wave — plus de page d'attente
- auth_bloc: quand onboardingState==VALIDATED, refresh token et vérifier si statutCompte==ACTIF → dashboard direct (pas d'écran d'attente) - Edge case: si activation backend échouée, fallback vers AwaitingValidationPage avec polling 15s - onboarding_bloc: séparer VALIDATED de AWAITING_VALIDATION dans le switch
This commit is contained in:
@@ -17,7 +17,7 @@ abstract class OnboardingEvent extends Equatable {
|
||||
/// Démarre le workflow (charge les formules + état courant si souscription existante)
|
||||
class OnboardingStarted extends OnboardingEvent {
|
||||
final String? existingSouscriptionId;
|
||||
final String initialState; // NO_SUBSCRIPTION | AWAITING_PAYMENT | PAYMENT_INITIATED | AWAITING_VALIDATION
|
||||
final String initialState; // NO_SUBSCRIPTION | AWAITING_PAYMENT | PAYMENT_INITIATED | AWAITING_VALIDATION | VALIDATED
|
||||
final String? typeOrganisation;
|
||||
final String? organisationId;
|
||||
const OnboardingStarted({
|
||||
@@ -155,7 +155,7 @@ class OnboardingPaiementEchoue extends OnboardingState {
|
||||
List<Object?> get props => [message, souscription, waveLaunchUrl];
|
||||
}
|
||||
|
||||
/// Étape 5 : en attente de validation SuperAdmin
|
||||
/// Étape 5 : en attente d'activation (paiement reçu, activation en cours)
|
||||
class OnboardingStepAttente extends OnboardingState {
|
||||
final SouscriptionStatusModel? souscription;
|
||||
const OnboardingStepAttente({this.souscription});
|
||||
@@ -233,10 +233,17 @@ class OnboardingBloc extends Bloc<OnboardingEvent, OnboardingState> {
|
||||
}
|
||||
|
||||
case 'AWAITING_VALIDATION':
|
||||
case 'VALIDATED': // Paiement confirmé mais activation compte non encore effective
|
||||
final sosc = await _datasource.getMaSouscription();
|
||||
_souscription = sosc;
|
||||
emit(OnboardingStepAttente(souscription: sosc));
|
||||
final soscAwait = await _datasource.getMaSouscription();
|
||||
_souscription = soscAwait;
|
||||
emit(OnboardingStepAttente(souscription: soscAwait));
|
||||
|
||||
case 'VALIDATED':
|
||||
// Paiement confirmé, souscription validée, mais activation pas encore effective
|
||||
// (edge case : auth_bloc a déjà tenté un refresh sans succès).
|
||||
// Afficher la page d'attente avec polling 15s (AwaitingValidationPage).
|
||||
final soscValidated = await _datasource.getMaSouscription();
|
||||
_souscription = soscValidated;
|
||||
emit(OnboardingStepAttente(souscription: soscValidated));
|
||||
|
||||
case 'REJECTED':
|
||||
final sosc = await _datasource.getMaSouscription();
|
||||
|
||||
Reference in New Issue
Block a user