dev
dart 81 lines 2.52 KB
Raw
1 import 'package:cake_wallet/generated/i18n.dart';
2 import 'package:cake_wallet/src/widgets/address_text_field.dart';
3 import 'package:cw_core/currency_for_wallet_type.dart';
4 import 'package:cw_core/wallet_type.dart';
5 import 'package:flutter/material.dart';
6
7 class VerifyForm extends StatefulWidget {
8 VerifyForm({
9 Key? key,
10 required this.type,
11 required this.chainId,
12 }) : super(key: key);
13
14 final WalletType type;
15 final int? chainId;
16
17 @override
18 VerifyFormState createState() => VerifyFormState();
19 }
20
21 class VerifyFormState extends State<VerifyForm> with AutomaticKeepAliveClientMixin {
22 VerifyFormState()
23 : messageController = TextEditingController(),
24 addressController = TextEditingController(),
25 signatureController = TextEditingController();
26
27 final TextEditingController messageController;
28 final TextEditingController addressController;
29 final TextEditingController signatureController;
30
31 @override
32 void initState() {
33 super.initState();
34 }
35
36 @override
37 void dispose() {
38 super.dispose();
39 }
40
41 @override
42 bool get wantKeepAlive => true;
43
44 @override
45 Widget build(BuildContext context) {
46 super.build(context);
47 return Container(
48 padding: EdgeInsets.only(left: 24, right: 24),
49 child: Column(
50 children: [
51 AddressTextField(
52 controller: messageController,
53 placeholder: S.current.message,
54 options: [AddressTextFieldOption.paste],
55 buttonColor: Theme.of(context).colorScheme.surfaceContainerHighest,
56 fillColor: Theme.of(context).colorScheme.surface,
57 ),
58 const SizedBox(height: 20),
59 AddressTextField(
60 controller: addressController,
61 options: [AddressTextFieldOption.paste, AddressTextFieldOption.walletAddresses],
62 buttonColor: Theme.of(context).colorScheme.surfaceContainerHighest,
63 fillColor: Theme.of(context).colorScheme.surface,
64 onSelectedContact: (contact) {
65 addressController.text = contact.address;
66 },
67 selectedCurrency: walletTypeToCryptoCurrency(widget.type, chainId: widget.chainId),
68 ),
69 const SizedBox(height: 20),
70 AddressTextField(
71 controller: signatureController,
72 placeholder: S.current.signature,
73 options: [AddressTextFieldOption.paste],
74 buttonColor: Theme.of(context).colorScheme.surfaceContainerHighest,
75 fillColor: Theme.of(context).colorScheme.surface,
76 ),
77 ],
78 ),
79 );
80 }
81 }