-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathupdate_proposal_button.dart
94 lines (83 loc) · 2.78 KB
/
update_proposal_button.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import 'package:encointer_wallet/common/components/submit_button_cupertino.dart';
import 'package:encointer_wallet/service/service.dart';
import 'package:encointer_wallet/utils/alerts/app_alert.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:encointer_wallet/common/components/submit_button.dart';
import 'package:encointer_wallet/l10n/l10.dart';
import 'package:encointer_wallet/service/tx/lib/tx.dart';
import 'package:encointer_wallet/store/app.dart';
class UpdateProposalButton extends StatefulWidget {
const UpdateProposalButton({
super.key,
required this.proposalId,
required this.onPressed,
});
final BigInt proposalId;
final void Function() onPressed;
@override
State<UpdateProposalButton> createState() => _UpdateProposalButtonState();
}
class _UpdateProposalButtonState extends State<UpdateProposalButton> {
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
final l10n = context.l10n;
final store = context.read<AppStore>();
return SubmitButtonSmall(
onPressed: (context) async {
await _showSubmitUpdateProposalStateDialog(store, widget.proposalId);
widget.onPressed();
},
child: Text(l10n.proposalClose),
);
}
Future<void> _showSubmitUpdateProposalStateDialog(AppStore store, BigInt proposalId) {
final l10n = context.l10n;
return AppAlert.showDialog(
context,
title: Text('${l10n.proposal} $proposalId'),
content: Padding(
padding: const EdgeInsets.only(top: 10),
child: Text(l10n.proposalUpdateExplanation),
),
actions: <Widget>[
Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
SubmitButtonCupertino(
onPressed: (BuildContext context) async {
await _submitUpdateProposalState(store);
Navigator.of(context).pop();
},
child: Text(l10n.proposalUpdateState, style: const TextStyle(color: Colors.green)),
),
CupertinoButton(
onPressed: () => Navigator.of(context).pop(),
child: Text(l10n.cancel),
),
],
),
],
),
],
);
}
Future<void> _submitUpdateProposalState(AppStore store) async {
await submitDemocracyUpdateProposalState(
context,
store,
webApi,
store.account.getKeyringAccount(store.account.currentAccountPubKey!),
widget.proposalId,
txPaymentAsset: store.encointer.getTxPaymentAsset(store.encointer.chosenCid),
);
setState(() {});
}
}