initRoutes top-level property

Function initRoutes
read / write

Implementation

Function initRoutes = (RouteSettings settings) {
  final args = settings.arguments;

  switch (settings.name) {
    // Into
    case Routes.causesEditPage:
      {
        return customRoute(
            builder: (context) => ChangeCausePage(), settings: settings);
      }
    case Routes.causesOnboardingPage:
      {
        return customRoute(
            builder: (context) => CauseOnboardingPage(), settings: settings);
      }
    case Routes.login:
      {
        if (args is LoginPageArguments) {
          return customRoute(
              builder: (context) => LoginPage(args), settings: settings);
        }
        return customRoute(
            builder: (context) => LoginPage(LoginPageArguments()),
            settings: settings);
      }
    case Routes.emailSent:
    case Routes.loginLinkClicked:
      {
        if (args is EmailSentPageArguments) {
          return customRoute(
              builder: (context) => EmailSentPage(args), settings: settings);
        }
        return customRoute(
            builder: (context) => LoginPage(LoginPageArguments()),
            settings: settings);
      }
    case Routes.loginCodeInput:
      {
        if (args is String) {
          return customRoute(
              builder: (context) => LoginCodePage(args), settings: settings);
        }
        return customRoute(
            builder: (context) => LoginPage(LoginPageArguments()),
            settings: settings);
      }
    case Routes.profileSetup:
      {
        return customRoute(
            builder: (context) => ProfileSetup(), settings: settings);
      }

    case Routes.intro:
      {
        return customRoute(
            builder: (context) => IntroPage(), settings: settings);
      }

    case Routes.faq:
      {
        return customRoute(builder: (context) => FAQPage(), settings: settings);
      }
    case Routes.parteners:
      {
        return customRoute(
            builder: (context) => PartnersPage(), settings: settings);
      }
    case Routes.accountDetails:
      {
        return customRoute(builder: (context) => AccountDetailsPage());
      }

    // Tab page
    case Routes.home:
      {
        return customRoute(
            builder: (context) =>
                TabsPage(TabsPageArguments(initialPage: TabPage.Home)),
            settings: settings);
      }
    case Routes.explore:
      {
        return customRoute(
            builder: (context) => TabsPage(TabsPageArguments(
                initialPage: TabPage.Explore,
                explorePageArgs: args is ExplorePageArguments ? args : null)),
            settings: settings);
      }
    case Routes.campaign:
      {
        if (args is ListCampaign) {
          return customRoute(
              builder: (context) => CampaignPage(args), settings: settings);
        }
        break;
      }
    case Routes.actionInfo:
      {
        if (args is ActionInfoArguments) {
          return customRoute(
              builder: (context) => ActionInfo(args), settings: settings);
        }
        break;
      }

    // Other
    case Routes.info:
      {
        if (args is InfoPageArgumnets) {
          return customRoute(
              builder: (context) => InfoPage(args), settings: settings);
        }
        return customRoute(
            builder: (context) =>
                TabsPage(TabsPageArguments(initialPage: TabPage.Home)),
            settings: settings);
      }
    // Other
    case Routes.organisationPage:
      {
        if (args is Organisation) {
          return customRoute(
              builder: (context) => OraganisationInfoPage(args),
              settings: settings);
        }
        return customRoute(
            builder: (context) => PartnersPage(), settings: settings);
      }

    case Routes.notification:
      {
        if (args is InternalNotification) {
          return customRoute(
              builder: (context) => NotificationPage(args), settings: settings);
        }
        break;
      }
    case Routes.search:
      {
        return customRoute(
            builder: (context) => SearchPage(), settings: settings);
      }

    // TODO add a 404 page
    default:
      {
        return customRoute(
            builder: (context) =>
                TabsPage(TabsPageArguments(initialPage: TabPage.Home)),
            settings: settings);
      }
  }
};