routes.dart 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_bloc/flutter_bloc.dart';
  3. import 'package:youtube/data/models/call_model.dart';
  4. import 'package:youtube/presentaion/cubit/call/call_cubit.dart';
  5. import 'package:youtube/presentaion/screens/call_screen.dart';
  6. import 'package:youtube/presentaion/screens/home_screen.dart';
  7. import 'package:youtube/presentaion/screens/auth_screen.dart';
  8. import 'package:youtube/shared/constats.dart';
  9. class AppRouter {
  10. Route? onGenerateRoute(RouteSettings routeSettings) {
  11. switch (routeSettings.name) {
  12. case loginScreen:
  13. return MaterialPageRoute(
  14. builder: (_) {
  15. return const AuthScreen();
  16. },
  17. );
  18. case homeScreen:
  19. return MaterialPageRoute(
  20. builder: (_) {
  21. return const HomeScreen();
  22. },
  23. );
  24. case callScreen:
  25. List<dynamic> args = routeSettings.arguments as List<dynamic>;
  26. final isReceiver = args[0] as bool;
  27. final callModel = args[1] as CallModel;
  28. return MaterialPageRoute(
  29. builder: (_) {
  30. return BlocProvider(
  31. create: (_) => CallCubit(),
  32. child:
  33. CallScreen(isReceiver: isReceiver, callModel: callModel));
  34. },
  35. );
  36. }
  37. return null;
  38. }
  39. }