From 9ac9813244732923ceb1f0bcc94d04a9bec0458d Mon Sep 17 00:00:00 2001 From: Sergey Elpashev Date: Tue, 21 May 2024 22:36:42 +0300 Subject: [PATCH] OnPay operations --- lib/mobile_example.dart | 5 +++-- lib/pages/main.dart | 1 + lib/pages/order_confirmation.dart | 32 ++++++++++++++++++++----------- lib/pages/order_history.dart | 19 ++++++++++++++++-- 4 files changed, 42 insertions(+), 15 deletions(-) diff --git a/lib/mobile_example.dart b/lib/mobile_example.dart index 7aea049..c908e34 100644 --- a/lib/mobile_example.dart +++ b/lib/mobile_example.dart @@ -18,7 +18,7 @@ class MyExampleApp extends StatelessWidget { title: 'GymLink Example App', debugShowCheckedModeBanner: false, home: const ExampleMainPage(), - theme: ThemeData.dark(useMaterial3: true), + theme: ThemeData.light(useMaterial3: true), ); } } @@ -75,7 +75,7 @@ class _ExamplePageState extends State { () => context.read().onTokenReceived('token123')); Future.microtask(() => context .read() - .setTheme(ThemeData.dark(useMaterial3: true))); + .setTheme(ThemeData.light(useMaterial3: true))); } @override @@ -84,6 +84,7 @@ class _ExamplePageState extends State { appBar: AppBar( title: const Text('GymLink Example App'), ), + resizeToAvoidBottomInset: false, drawer: getDrawer(context), body: Column( children: [ diff --git a/lib/pages/main.dart b/lib/pages/main.dart index a4af639..5279412 100644 --- a/lib/pages/main.dart +++ b/lib/pages/main.dart @@ -240,6 +240,7 @@ class _MainPageState extends State { onPressed: () => Navigator.of(context).push(CustomPageRoute( builder: (context) => const BasketPage(), )), + highlightElevation: 0, backgroundColor: Colors.transparent, elevation: 0, child: CircleAvatar( diff --git a/lib/pages/order_confirmation.dart b/lib/pages/order_confirmation.dart index 3ef9019..9b35e36 100644 --- a/lib/pages/order_confirmation.dart +++ b/lib/pages/order_confirmation.dart @@ -3,7 +3,12 @@ import 'package:flutter_markdown/flutter_markdown.dart'; import 'package:gymlink_module_web/components/app_bar.dart'; import 'package:gymlink_module_web/components/heading.dart'; import 'package:gymlink_module_web/components/order_confirm_item_card.dart'; +import 'package:gymlink_module_web/pages/order_history.dart'; +import 'package:gymlink_module_web/providers/cart.dart'; import 'package:gymlink_module_web/tools/prefs.dart'; +import 'package:gymlink_module_web/tools/routes.dart'; +import 'package:provider/provider.dart'; +import 'package:url_launcher/url_launcher.dart'; List> cart = [ { @@ -71,6 +76,13 @@ class _OrderConfirmationPageState extends State { }); } + Future _goToPage() async { + final Uri url = Uri.parse('https://google.com'); + if (!await launchUrl(url, webOnlyWindowName: '_blank')) { + throw 'Could not launch $url'; + } + } + @override Widget build(BuildContext context) { return Scaffold( @@ -140,17 +152,15 @@ class _OrderConfirmationPageState extends State { ), ), ElevatedButton( - onPressed: () { - debugPrint('debugprint'); - // if (kIsWeb) { - // Navigator.of(context).push( - // MaterialPageRoute( - // builder: (context) => const OrderPayPage(), - // ), - // ); - // } else { - // debugPrint('test'); - // } + onPressed: () async { + _goToPage(); + await clearCart(); + Provider.of(context, listen: false) + .updateCartLength(); + Navigator.of(context).pushAndRemoveUntil( + CustomPageRoute( + builder: (context) => const HistoryPage()), + (route) => route.isFirst); }, style: ElevatedButton.styleFrom( backgroundColor: Theme.of(context).primaryColor, diff --git a/lib/pages/order_history.dart b/lib/pages/order_history.dart index cef463f..779f072 100644 --- a/lib/pages/order_history.dart +++ b/lib/pages/order_history.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:flutter/material.dart'; import 'package:gymlink_module_web/components/app_bar.dart'; import 'package:gymlink_module_web/components/heading.dart'; @@ -44,11 +46,17 @@ class HistoryPage extends StatefulWidget { class _HistoryPageState extends State { List> my_orders = []; + late Timer _updateTimer; @override void initState() { super.initState(); my_orders = orders; + ordersRefresh(); + } + + void ordersRefresh() { + _updateTimer = Timer.periodic(const Duration(minutes: 1), _onRefresh); } void _onLoad() async { @@ -65,8 +73,15 @@ class _HistoryPageState extends State { }); } - Future _onRefresh() async { + @override + void dispose() { + _updateTimer.cancel(); + super.dispose(); + } + + Future _onRefresh(Timer timer) async { await Future.delayed(const Duration(milliseconds: 1000)); + debugPrint('refreshed'); } @override @@ -86,7 +101,7 @@ class _HistoryPageState extends State { scrollOffset: 200, child: RefreshIndicator( edgeOffset: 55, - onRefresh: _onRefresh, + onRefresh: () => _onRefresh(_updateTimer), child: Stack( children: [ ListView.builder(