Skip to content

Commit aef439c

Browse files
committed
deps and refactor
1 parent 6dd7ac1 commit aef439c

File tree

7 files changed

+54
-71
lines changed

7 files changed

+54
-71
lines changed

lib/app.dart

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
22
import 'package:flutter_bloc_pattern/flutter_bloc_pattern.dart';
33
import 'package:flutter_provider/flutter_provider.dart';
44
import 'package:node_auth/domain/models/auth_state.dart';
5+
import 'package:node_auth/domain/repositories/user_repository.dart';
56
import 'package:node_auth/domain/usecases/get_auth_state_stream_use_case.dart';
67
import 'package:node_auth/domain/usecases/get_auth_state_use_case.dart';
78
import '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(

lib/main.dart

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,6 @@ import 'package:node_auth/data/remote/api_service.dart';
99
import 'package:node_auth/data/remote/remote_data_source.dart';
1010
import 'package:node_auth/data/user_repository_imp.dart';
1111
import 'package:node_auth/domain/repositories/user_repository.dart';
12-
import 'package:node_auth/domain/usecases/change_password_use_case.dart';
13-
import 'package:node_auth/domain/usecases/get_auth_state_stream_use_case.dart';
14-
import 'package:node_auth/domain/usecases/get_auth_state_use_case.dart';
15-
import 'package:node_auth/domain/usecases/login_use_case.dart';
16-
import 'package:node_auth/domain/usecases/logout_use_case.dart';
17-
import 'package:node_auth/domain/usecases/register_use_case.dart';
18-
import 'package:node_auth/domain/usecases/reset_password_use_case.dart';
19-
import 'package:node_auth/domain/usecases/send_reset_password_email_use_case.dart';
20-
import 'package:node_auth/domain/usecases/upload_image_use_case.dart';
2112
import 'package:rx_shared_preferences/rx_shared_preferences.dart';
2213

2314
void main() async {
@@ -41,30 +32,8 @@ void main() async {
4132
);
4233

4334
runApp(
44-
Providers(
45-
providers: [
46-
Provider<LoginUseCase>(value: LoginUseCase(userRepository)),
47-
Provider<RegisterUseCase>(value: RegisterUseCase(userRepository)),
48-
Provider<LogoutUseCase>(value: LogoutUseCase(userRepository)),
49-
Provider<GetAuthStateStreamUseCase>(
50-
value: GetAuthStateStreamUseCase(userRepository),
51-
),
52-
Provider<GetAuthStateUseCase>(
53-
value: GetAuthStateUseCase(userRepository),
54-
),
55-
Provider<UploadImageUseCase>(
56-
value: UploadImageUseCase(userRepository),
57-
),
58-
Provider<ChangePasswordUseCase>(
59-
value: ChangePasswordUseCase(userRepository),
60-
),
61-
Provider<SendResetPasswordEmailUseCase>(
62-
value: SendResetPasswordEmailUseCase(userRepository),
63-
),
64-
Provider<ResetPasswordUseCase>(
65-
value: ResetPasswordUseCase(userRepository),
66-
),
67-
],
35+
Provider<UserRepository>.value(
36+
userRepository,
6837
child: const MyApp(),
6938
),
7039
);

lib/pages/home/home_page.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,10 @@ class _HomePageState extends State<HomePage>
166166
),
167167
context: context,
168168
builder: (context) {
169-
final changePassword = Provider.of<ChangePasswordUseCase>(context);
170169
return BlocProvider<ChangePasswordBloc>(
171-
initBloc: () => ChangePasswordBloc(changePassword),
170+
initBloc: (context) => ChangePasswordBloc(
171+
ChangePasswordUseCase(context.get()),
172+
),
172173
child: const ChangePasswordBottomSheet(),
173174
);
174175
},

lib/pages/home/home_profile_widget.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ class HomeUserProfile extends StatelessWidget {
2121
padding: const EdgeInsets.all(16.0),
2222
child: RxStreamBuilder<AuthenticationState>(
2323
stream: homeBloc.authState$,
24-
builder: (context, snapshot) {
25-
if (!snapshot.hasData) {
24+
builder: (context, data) {
25+
if (data == null) {
2626
return Center(
2727
child: CircularProgressIndicator(),
2828
);
2929
}
30-
final user = snapshot.data.userAndToken?.user;
30+
final user = data.userAndToken?.user;
3131
return user == null
3232
? _buildUnauthenticated(context)
3333
: _buildProfile(user, homeBloc);

lib/pages/reset_password/reset_password_page.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,17 +96,17 @@ class _ResetPasswordPageState extends State<ResetPasswordPage>
9696

9797
@override
9898
Widget build(BuildContext context) {
99-
final sendResetPasswordEmail =
100-
Provider.of<SendResetPasswordEmailUseCase>(context);
101-
final resetPassword = Provider.of<ResetPasswordUseCase>(context);
102-
10399
final sendEmailPage = BlocProvider<SendEmailBloc>(
104-
initBloc: () => SendEmailBloc(sendResetPasswordEmail),
100+
initBloc: (context) => SendEmailBloc(
101+
SendResetPasswordEmailUseCase(context.get()),
102+
),
105103
child: SendEmailPage(toggle: onToggle),
106104
);
107105

108106
final resetPasswordPage = BlocProvider<InputTokenAndResetPasswordBloc>(
109-
initBloc: () => InputTokenAndResetPasswordBloc(resetPassword),
107+
initBloc: (context) => InputTokenAndResetPasswordBloc(
108+
ResetPasswordUseCase(context.get()),
109+
),
110110
child: InputTokenAndResetPasswordPage(toggle: onToggle),
111111
);
112112

pubspec.lock

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,14 +189,14 @@ packages:
189189
name: disposebag
190190
url: "https://pub.dartlang.org"
191191
source: hosted
192-
version: "1.4.0"
192+
version: "1.5.0-nullsafety.0"
193193
distinct_value_connectable_stream:
194194
dependency: "direct main"
195195
description:
196196
name: distinct_value_connectable_stream
197197
url: "https://pub.dartlang.org"
198198
source: hosted
199-
version: "1.2.0-beta02"
199+
version: "1.2.0-nullsafety.2"
200200
fake_async:
201201
dependency: transitive
202202
description:
@@ -236,14 +236,14 @@ packages:
236236
name: flutter_bloc_pattern
237237
url: "https://pub.dartlang.org"
238238
source: hosted
239-
version: "1.2.0"
239+
version: "2.0.0-nullsafety.0"
240240
flutter_disposebag:
241241
dependency: "direct main"
242242
description:
243243
name: flutter_disposebag
244244
url: "https://pub.dartlang.org"
245245
source: hosted
246-
version: "1.0.0"
246+
version: "1.1.0-nullsafety.0"
247247
flutter_plugin_android_lifecycle:
248248
dependency: transitive
249249
description:
@@ -257,7 +257,7 @@ packages:
257257
name: flutter_provider
258258
url: "https://pub.dartlang.org"
259259
source: hosted
260-
version: "1.1.1"
260+
version: "2.0.0-nullsafety.0"
261261
flutter_test:
262262
dependency: "direct dev"
263263
description: flutter
@@ -506,6 +506,13 @@ packages:
506506
url: "https://pub.dartlang.org"
507507
source: hosted
508508
version: "0.25.0"
509+
rxdart_ext:
510+
dependency: transitive
511+
description:
512+
name: rxdart_ext
513+
url: "https://pub.dartlang.org"
514+
source: hosted
515+
version: "0.0.1-nullsafety.2"
509516
shared_preferences:
510517
dependency: "direct main"
511518
description:

pubspec.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ dependencies:
2020
image_picker: ^0.6.7+17
2121
shared_preferences: ^0.5.12+4
2222

23-
distinct_value_connectable_stream: ^1.2.0-beta02
24-
flutter_provider: ^1.1.1
23+
distinct_value_connectable_stream: ^1.2.0-nullsafety.2
24+
flutter_provider: ^2.0.0-nullsafety.0
2525
rx_shared_preferences: ^1.3.5
26-
disposebag: ^1.4.0
27-
flutter_disposebag: ^1.0.0
28-
flutter_bloc_pattern: ^1.2.0
26+
disposebag: ^1.5.0-nullsafety.0
27+
flutter_disposebag: ^1.1.0-nullsafety.0
28+
flutter_bloc_pattern: ^2.0.0-nullsafety.0
2929

3030
dependency_overrides:
3131
rxdart: 0.25.0

0 commit comments

Comments
 (0)