didvan-app/lib/routes/route_generator.dart

55 lines
1.6 KiB
Dart

import 'package:didvan/pages/authentication/authentication.dart';
import 'package:didvan/pages/authentication/authentication_state.dart';
import 'package:didvan/pages/home/home.dart';
import 'package:didvan/pages/home/radar/radar.dart';
import 'package:didvan/pages/home/radar/radar_state.dart';
import 'package:didvan/pages/splash/splash.dart';
import 'package:didvan/pages/splash/splash_state.dart';
import 'package:didvan/routes/routes.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class RouteGenerator {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case Routes.splash:
return _materialPageRouteGenerator(
ChangeNotifierProvider<SplashState>(
create: (context) => SplashState(),
child: const Splash(),
),
);
case Routes.authenticaion:
return _materialPageRouteGenerator(
ChangeNotifierProvider<AuthenticationState>(
create: (context) => AuthenticationState(),
child: const Authentication(),
),
);
case Routes.home:
return _materialPageRouteGenerator(
const Home(),
);
default:
return _errorRoute();
}
}
static Route<dynamic> _errorRoute() {
return MaterialPageRoute(builder: (_) {
return Scaffold(
appBar: AppBar(
title: const Text('Error'),
),
body: const Center(
child: Text('ERROR'),
),
);
});
}
static _materialPageRouteGenerator(pageWidget) => MaterialPageRoute(
builder: (context) => pageWidget,
);
}