Skip to content

Commit 6b5fee0

Browse files
authored
Merge pull request #26 from adryanev/dev
fix: ticketer approval button spammed
2 parents 04bfe13 + b95c804 commit 6b5fee0

File tree

1 file changed

+59
-31
lines changed

1 file changed

+59
-31
lines changed

lib/features/scanner/presentation/pages/scan_detail_page.dart

Lines changed: 59 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -90,21 +90,35 @@ class ScanDetailPage extends StatelessWidget with FailureMessageHandler {
9090
: () {
9191
showDialog<dynamic>(
9292
context: context,
93-
builder: (_) => ConfirmationDialog(
94-
title: 'Konfirmasi Setuju',
95-
description:
96-
'Apakah anda menyetujui tiket ini?',
97-
onDismiss: () {
98-
Navigator.pop(context);
99-
},
100-
onConfirm: () {
101-
context.read<ScanDetailBloc>().add(
102-
const ScanDetailEvent
103-
.approveButtonPressed(),
104-
);
105-
},
106-
confirmText: 'Setuju',
107-
dismissText: 'Batal',
93+
builder: (_) => BlocProvider.value(
94+
value: context.read<ScanDetailBloc>(),
95+
child: BlocBuilder<ScanDetailBloc,
96+
ScanDetailState>(
97+
builder: (context, state) {
98+
return ConfirmationDialog(
99+
title: 'Konfirmasi Setuju',
100+
description:
101+
'Apakah anda menyetujui tiket ini?',
102+
onDismiss: () {
103+
Navigator.pop(context);
104+
},
105+
onConfirm: state.isLoading
106+
? null
107+
: () {
108+
context
109+
.read<ScanDetailBloc>()
110+
.add(
111+
const ScanDetailEvent
112+
.approveButtonPressed(),
113+
);
114+
},
115+
confirmText: state.isLoading
116+
? 'Loading'
117+
: 'Setuju',
118+
dismissText: 'Batal',
119+
);
120+
},
121+
),
108122
),
109123
);
110124
},
@@ -116,22 +130,36 @@ class ScanDetailPage extends StatelessWidget with FailureMessageHandler {
116130
: () {
117131
showDialog<dynamic>(
118132
context: context,
119-
builder: (_) => ConfirmationDialog(
120-
title: 'Konfirmasi Pembayaran',
121-
description:
122-
'Pastikan anda sudah menerima uang '
123-
'dari pengunjung',
124-
onDismiss: () {
125-
Navigator.pop(context);
126-
},
127-
onConfirm: () {
128-
context.read<ScanDetailBloc>().add(
129-
const ScanDetailEvent
130-
.payNowButtonPressed(),
131-
);
132-
},
133-
confirmText: 'Konfirmasi',
134-
dismissText: 'Batal',
133+
builder: (_) => BlocProvider.value(
134+
value: context.read<ScanDetailBloc>(),
135+
child: BlocBuilder<ScanDetailBloc,
136+
ScanDetailState>(
137+
builder: (context, state) {
138+
return ConfirmationDialog(
139+
title: 'Konfirmasi Pembayaran',
140+
description:
141+
'Pastikan anda sudah menerima uang '
142+
'dari pengunjung',
143+
onDismiss: () {
144+
Navigator.pop(context);
145+
},
146+
onConfirm: state.isLoading
147+
? null
148+
: () {
149+
context
150+
.read<ScanDetailBloc>()
151+
.add(
152+
const ScanDetailEvent
153+
.payNowButtonPressed(),
154+
);
155+
},
156+
confirmText: state.isLoading
157+
? 'Loading'
158+
: 'Konfirmasi',
159+
dismissText: 'Batal',
160+
);
161+
},
162+
),
135163
),
136164
);
137165
},

0 commit comments

Comments
 (0)