Skip to content

Commit 858ea56

Browse files
committed
snackBar extension method
1 parent 0858160 commit 858ea56

File tree

3 files changed

+29
-41
lines changed

3 files changed

+29
-41
lines changed

lib/pages/edit_or_add/edit_or_add_page.dart

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -95,37 +95,20 @@ class _EditOrAddPageState extends State<EditOrAddPage>
9595
});
9696
_subscriptionMessage ??=
9797
BlocProvider.of<EditOrAddBloc>(context).message$.listen((message) {
98-
final scaffoldState = _scaffoldKey?.currentState;
99-
10098
if (message is InvalidInformation) {
101-
showSnackBar(
102-
scaffoldState,
103-
'Invalid information',
104-
);
99+
_scaffoldKey.snackBar('Invalid information');
105100
}
106101
if (message is AddContactSuccess) {
107-
showSnackBar(
108-
scaffoldState,
109-
'Add contact successfully',
110-
);
102+
_scaffoldKey.snackBar('Add contact successfully');
111103
}
112104
if (message is AddContactFailure) {
113-
showSnackBar(
114-
scaffoldState,
115-
'Add contact not successfully',
116-
);
105+
_scaffoldKey.snackBar('Add contact not successfully');
117106
}
118107
if (message is UpdateContactSuccess) {
119-
showSnackBar(
120-
scaffoldState,
121-
'Update contact successfully',
122-
);
108+
_scaffoldKey.snackBar('Update contact successfully');
123109
}
124110
if (message is UpdateContactFailure) {
125-
showSnackBar(
126-
scaffoldState,
127-
'Update contact not successfully',
128-
);
111+
_scaffoldKey.snackBar('Update contact not successfully');
129112
}
130113
});
131114
super.didChangeDependencies();

lib/pages/home/home_page.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,10 @@ class _HomePageState extends State<HomePage> {
2828

2929
void _handleMessage(HomeMessage message) async {
3030
if (message is DeleteContactSuccess) {
31-
showSnackBar(
32-
_scaffoldKey?.currentState,
33-
'Delete contact successfully',
34-
);
31+
_scaffoldKey.snackBar('Delete contact successfully');
3532
}
3633
if (message is DeleteContactFailure) {
37-
showSnackBar(
38-
_scaffoldKey?.currentState,
39-
'Delete contact not successfully',
40-
);
34+
_scaffoldKey.snackBar('Delete contact not successfully');
4135
}
4236
}
4337

lib/utils.dart

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,25 @@
11
import 'package:flutter/material.dart';
22

3-
ScaffoldFeatureController<SnackBar, SnackBarClosedReason> showSnackBar(
4-
ScaffoldState scaffolState,
5-
String message, [
6-
Duration duration = const Duration(seconds: 2),
7-
]) {
8-
return scaffolState?.showSnackBar(
9-
SnackBar(
10-
content: Text(message),
11-
duration: duration,
12-
),
13-
);
3+
extension SnackBarScaffoldStateExtension on ScaffoldState {
4+
void snackBar(
5+
String message, [
6+
Duration duration = const Duration(seconds: 2),
7+
]) {
8+
showSnackBar(
9+
SnackBar(
10+
content: Text(message),
11+
duration: duration,
12+
),
13+
);
14+
}
15+
}
16+
17+
extension ShowSnackbarGlobalKeyScaffoldStateExtension
18+
on GlobalKey<ScaffoldState> {
19+
void snackBar(
20+
String message, [
21+
Duration duration = const Duration(seconds: 2),
22+
]) {
23+
currentState?.snackBar(message);
24+
}
1425
}

0 commit comments

Comments
 (0)