@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
22import 'package:flutter_bloc_pattern/flutter_bloc_pattern.dart' ;
33import 'package:flutter_provider/flutter_provider.dart' ;
44import 'package:node_auth/domain/models/auth_state.dart' ;
5+ import 'package:node_auth/domain/repositories/user_repository.dart' ;
56import 'package:node_auth/domain/usecases/get_auth_state_stream_use_case.dart' ;
67import 'package:node_auth/domain/usecases/get_auth_state_use_case.dart' ;
78import 'package:node_auth/domain/usecases/login_use_case.dart' ;
@@ -19,33 +20,38 @@ class MyApp extends StatelessWidget {
1920 @override
2021 Widget build (BuildContext context) {
2122 final routes = < String , WidgetBuilder > {
22- '/' : (context) => const Home (),
23+ Navigator .defaultRouteName: (context) {
24+ return Provider <GetAuthStateUseCase >.factory (
25+ (context) => GetAuthStateUseCase (context.get ()),
26+ child: const Home (),
27+ );
28+ },
2329 RegisterPage .routeName: (context) {
24- final registerUser = Provider .of <RegisterUseCase >(context);
25-
2630 return BlocProvider <RegisterBloc >(
2731 child: const RegisterPage (),
28- initBloc: () => RegisterBloc (registerUser),
32+ initBloc: (context) => RegisterBloc (
33+ RegisterUseCase (context.get ()),
34+ ),
2935 );
3036 },
3137 HomePage .routeName: (context) {
32- final logout = Provider .of <LogoutUseCase >(context);
33- final getAuthState = Provider .of <GetAuthStateStreamUseCase >(context);
34- final uploadImage = Provider .of <UploadImageUseCase >(context);
35-
3638 return BlocProvider <HomeBloc >(
3739 child: const HomePage (),
38- initBloc: () => HomeBloc (
39- logout,
40- getAuthState,
41- uploadImage,
42- ),
40+ initBloc: (context) {
41+ final userRepository = context.get <UserRepository >();
42+ return HomeBloc (
43+ LogoutUseCase (userRepository),
44+ GetAuthStateStreamUseCase (userRepository),
45+ UploadImageUseCase (userRepository),
46+ );
47+ },
4348 );
4449 },
4550 LoginPage .routeName: (context) {
46- final login = Provider .of <LoginUseCase >(context);
4751 return BlocProvider <LoginBloc >(
48- initBloc: () => LoginBloc (login),
52+ initBloc: (context) => LoginBloc (
53+ LoginUseCase (context.get ()),
54+ ),
4955 child: const LoginPage (),
5056 );
5157 },
@@ -54,8 +60,8 @@ class MyApp extends StatelessWidget {
5460 },
5561 };
5662
57- return Provider <Map <String , WidgetBuilder >>(
58- value : routes,
63+ return Provider <Map <String , WidgetBuilder >>. value (
64+ routes,
5965 child: MaterialApp (
6066 title: 'Flutter Demo' ,
6167 theme: ThemeData (
0 commit comments