selectRootPage method

Widget selectRootPage({
  1. required Widget rootPage,
  2. required Widget? homePage,
  3. required Widget splashPage,
  4. required dynamic previousVersionPage,
  5. required Widget onGoingPage,
})

Implementation

Widget selectRootPage({required Widget rootPage, required  Widget? homePage,
  required  Widget splashPage, required  previousVersionPage, required  Widget onGoingPage}) {

  if(!Get.isRegistered<LoginService>() || !Get.isRegistered<UserService>()) {
    return rootPage;
  }

  final loginServiceImpl = Get.find<LoginService>();
  final userServiceImpl = Get.find<UserService>();

  authStatus.value = loginServiceImpl.getAuthStatus();
  if(authStatus.value == AuthStatus.waiting) {
    return splashPage;
  } else if (lastStableBuild > buildNumber) {
    rootPage = previousVersionPage;
  } else if(AppHiveController().firstTime) {
    rootPage = onGoingPage;
    AppHiveController().setFirstTime(false);
  } else if(authStatus.value == AuthStatus.loggingIn) {
    rootPage = splashPage;
  } else if (homePage != null
      && authStatus.value == AuthStatus.loggedIn
      && (userServiceImpl.user.id.isNotEmpty)
      && ((userServiceImpl.user.profiles.isNotEmpty)
          && (userServiceImpl.user.profiles.first.id.isNotEmpty))) {
    rootPage = homePage;
  }

  return rootPage;
}