You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

188 lines
6.8 KiB

import 'package:flutter/material.dart';
import 'package:teso/Classes/TesoUser.dart';
import 'package:teso/Pages/PageWidgets/CoinPurchase/MomoType.dart';
import 'package:teso/Pages/PageWidgets/CoinPurchase/PayGold.dart';
import 'package:teso/providers/pageAnimations.dart';
import 'package:teso/util/consts.dart';
import 'package:url_launcher/url_launcher_string.dart';
import 'PurchaseingSilver.dart';
class SilverPurchaseFixed extends StatefulWidget {
final String? amount;
final String? goldCost;
final String? cashCost;
final TesoUser? user;
const SilverPurchaseFixed(
{Key? key, this.amount, this.goldCost, this.cashCost, this.user})
: super(key: key);
@override
_SilverPurchaseFixedState createState() => _SilverPurchaseFixedState();
}
class _SilverPurchaseFixedState extends State<SilverPurchaseFixed> {
TextEditingController? momoNumber;
String tapped = "goldcoins";
@override
void initState() {
momoNumber = new TextEditingController();
super.initState();
}
void selectTransfer(String type) {
setState(() {
tapped = type;
});
}
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.symmetric(
horizontal: (MediaQuery.of(context).size.width) * 0.030,
vertical: (MediaQuery.of(context).size.width) * 0.040,
),
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Container(
child: new Wrap(
children: <Widget>[
new Container(
width: double.infinity,
margin: EdgeInsets.only(
top: 5.0,
bottom: 10.0,
),
child: Center(
child: Text(
"Purchase Silver Coins",
style: TextStyle(
fontSize: 18.0,
),
),
)),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0),
child: Divider(),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 30.0),
child: Container(
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.symmetric(vertical: 5),
child: new RichText(
text: new TextSpan(
style: new TextStyle(
fontSize: 15.0,
color: Theme.of(context).primaryColorLight,
),
children: <TextSpan>[
new TextSpan(
text: "Purchasing ",
),
new TextSpan(
text: widget.amount,
style: new TextStyle(fontWeight: FontWeight.bold),
),
new TextSpan(
text: " Silver coins",
),
],
),
),
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 30.0),
child: Container(
width: double.infinity,
margin: EdgeInsets.symmetric(vertical: 5),
child: Text(
"Payment Method",
style: TextStyle(
fontSize: 18,
),
),
),
),
SizedBox(height: 14.0),
Container(
color: Colors.transparent,
padding: const EdgeInsets.symmetric(horizontal: 20.0),
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: [
payWithGold(context, "goldcoins", selectTransfer, tapped),
buildType(context, "assets/images/MTN.png", "mtn",
selectTransfer, tapped),
buildType(context, "assets/images/Vodafone.png",
"vodafone", selectTransfer, tapped),
buildType(context, "assets/images/AirtelTigo.png",
"airteltigo", selectTransfer, tapped),
],
),
),
),
SizedBox(height: 10.0),
Visibility(
// ignore: unnecessary_null_comparison
visible: tapped != null ? true : false,
child: new Container(
margin: EdgeInsets.symmetric(
vertical: 20.0,
),
child: new Center(
child: ElevatedButton(
style: ElevatedButton.styleFrom(
primary: Theme.of(context).colorScheme.secondary,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(25.0),
),
),
),
onPressed: () async {
if (tapped == "goldcoins") {
Navigator.push(
context,
PageTransition(
child: ProcessSilverPurchase(
cost: double.parse(widget.goldCost!),
method: tapped,
silverAmount: int.parse(widget.amount!),
user: widget.user,
),
type: PageTransitionType.leftToRight,
),
);
} else {
String _url = paymentServer +
"purchasesilver/user=${widget.user!.userGUID}/amount=${widget.amount}/cointype=TESCNS01";
await canLaunchUrlString(_url)
? await launchUrlString(
_url,
mode: LaunchMode.platformDefault,
)
: throw 'Could not launch $_url';
}
},
child: Text(
"Confirm",
style: TextStyle(
color: Colors.white,
),
),
),
),
),
)
],
),
),
),
);
}
}