getNextRouteInFlow static method

Future<String> getNextRouteInFlow({
  1. required IAppDataStore onBoardingDataStore,
  2. required IAuthDataStore authDataStore,
  3. required IProfileDataStore profileDataStore,
})

Implementation

static Future<String> getNextRouteInFlow({
  required IAppDataStore onBoardingDataStore,
  required IAuthDataStore authDataStore,
  required IProfileDataStore profileDataStore,
}) async {
  if (!buildConfig.anonymousBrowsingEnabled) {
    final sessionId = await authDataStore.getSessionID();

    if (sessionId.isEmpty) {
      return Screens.otpPhone.forRoot();
    }

    final firstName = await profileDataStore.getFirstName();
    if (firstName.isEmpty) {
      return Screens.onBoardingProfileForm.forRoot();
    }
  }

  return Uri(path: Screens.homeScreen.forRoot(), queryParameters: {
    'eventProps': jsonEncode({
      'version': 4,
      'walletBenefitEnabled':
          globalUserState().getState().profile.isWalletBenefitsEnabled,
    })
  }).toString();
}