getInitialRoute function

Future<String> getInitialRoute({
  1. required BuildContext context,
})

Gets initial route based on the authToken status

Implementation

Future<String> getInitialRoute({required BuildContext context}) async {
  final CoreState state = StoreProvider.state<CoreState>(context)!;

  // This will always be false
  final bool? signedIn = state.userState!.isSignedIn;

  await StoreProvider.dispatch<CoreState>(
    context,
    BatchUpdateUserStateAction(
        inActivitySetInTime: DateTime.now().toIso8601String()),
  );

  if (signedIn == true) {
    /// Check inactivity time
    final AuthTokenStatus tokenStatus = await getAuthTokenStatus(
      context: context,
    );

    switch (tokenStatus) {
      case AuthTokenStatus.requiresLogin:
        return phoneLoginRoute;
      case AuthTokenStatus.requiresPin:
        return pinVerificationRoute;
      default: // Happy case => Get the onboarding path and
    }

    return onboardingPath(state: state).route;
  }

  return landingPageRoute;
}