gecko/lib/widgets/buttons/home_buttons.dart

174 lines
6.2 KiB
Dart

// ignore_for_file: use_build_context_synchronously
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/wallet_data.dart';
import 'package:gecko/models/widgets_keys.dart';
import 'package:gecko/providers/home.dart';
import 'package:gecko/providers/my_wallets.dart';
import 'package:gecko/providers/wallets_profiles.dart';
import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
import 'package:gecko/screens/search.dart';
import 'package:provider/provider.dart';
class HomeButtons extends StatelessWidget {
const HomeButtons({
Key? key,
}) : super(key: key);
@override
Widget build(BuildContext context) {
final myWalletProvider = Provider.of<MyWalletsProvider>(context);
final homeProvider = Provider.of<HomeProvider>(context, listen: false);
final historyProvider = Provider.of<WalletsProfilesProvider>(context);
return Column(children: <Widget>[
const Spacer(),
Row(mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[
Column(children: <Widget>[
Container(
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: Colors.black,
boxShadow: [
BoxShadow(
blurRadius: 2, offset: Offset(1, 1.5), spreadRadius: 0.5)
],
),
child: ClipOval(
child: Material(
color: orangeC, // button color
child: InkWell(
key: keyOpenSearch,
child: const Padding(
padding: EdgeInsets.all(16),
child: Image(
image: AssetImage('assets/home/loupe.png'),
height: 58),
),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) {
return const SearchScreen();
}),
);
}),
),
),
),
const SizedBox(height: 10),
Text(
"searchWallet".tr(),
textAlign: TextAlign.center,
style: const TextStyle(
color: Colors.white,
fontSize: 13.5,
fontWeight: FontWeight.w500),
)
]),
const SizedBox(width: 110),
Column(children: <Widget>[
Container(
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: Colors.black,
boxShadow: [
BoxShadow(
blurRadius: 2, offset: Offset(1, 1.5), spreadRadius: 0.5)
],
),
child: ClipOval(
key: keyOpenWalletsHomme,
child: Material(
color: homeProvider.isWalletBoxInit
? orangeC
: Colors.grey[500], // button color
child: InkWell(
onTap: !homeProvider.isWalletBoxInit
? null
: () async {
WalletData? defaultWallet =
myWalletProvider.getDefaultWallet();
String? pin;
if (myWalletProvider.pinCode == '') {
pin = await Navigator.push(
context,
MaterialPageRoute(
builder: (homeContext) {
return UnlockingWallet(
wallet: defaultWallet);
},
),
);
}
if (pin != null || myWalletProvider.pinCode != '') {
Navigator.pushNamed(context, '/mywallets');
}
},
child: const Padding(
padding: EdgeInsets.all(15),
child: Image(
image: AssetImage('assets/home/wallet.png'),
height: 61))),
),
),
),
const SizedBox(height: 10),
Text(
"manageWallets".tr(),
textAlign: TextAlign.center,
style: const TextStyle(
color: Colors.white,
fontSize: 13.5,
fontWeight: FontWeight.w500),
)
])
]),
Padding(
padding: const EdgeInsets.only(top: 35),
child:
Row(mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[
Column(children: <Widget>[
Container(
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: Colors.black,
boxShadow: [
BoxShadow(
blurRadius: 2, offset: Offset(1, 1.5), spreadRadius: 0.5)
],
),
child: ClipOval(
child: Material(
color: orangeC, // button color
child: InkWell(
child: const Padding(
padding: EdgeInsets.all(14),
child: Image(
image: AssetImage('assets/home/qrcode.png'),
height: 62)),
onTap: () async {
await historyProvider.scan(context);
}),
),
),
),
const SizedBox(height: 10),
Text(
"scanQRCode".tr(),
textAlign: TextAlign.center,
style: const TextStyle(
color: Colors.white,
fontSize: 13.5,
fontWeight: FontWeight.w500),
)
])
]),
),
const SizedBox(height: 70)
]);
}
}