48 lines
1.4 KiB
Dart
48 lines
1.4 KiB
Dart
import 'package:didvan/pages/authentication/authentication.dart';
|
|
import 'package:didvan/pages/authentication/authentication_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(
|
|
create: (context) => SplashState(),
|
|
child: const Splash(),
|
|
),
|
|
);
|
|
case Routes.authenticaion:
|
|
return _materialPageRouteGenerator(
|
|
ChangeNotifierProvider(
|
|
create: (context) => AuthenticationState(),
|
|
child: const Authentication(),
|
|
),
|
|
);
|
|
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,
|
|
);
|
|
}
|