mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-02-02 19:26:27 +00:00
CAKE-279 | renamed WebViewPage on WyrePage; applied spinner to Buy button on dashboard_page.dart
This commit is contained in:
parent
e77cf89651
commit
b20246ad89
6 changed files with 55 additions and 33 deletions
|
@ -41,7 +41,7 @@ import 'package:cake_wallet/src/screens/transaction_details/transaction_details_
|
|||
import 'package:cake_wallet/src/screens/wallet_keys/wallet_keys_page.dart';
|
||||
import 'package:cake_wallet/src/screens/exchange/exchange_page.dart';
|
||||
import 'package:cake_wallet/src/screens/exchange/exchange_template_page.dart';
|
||||
import 'package:cake_wallet/src/screens/web_view/web_view_page.dart';
|
||||
import 'package:cake_wallet/src/screens/wyre/wyre_page.dart';
|
||||
import 'package:cake_wallet/store/dashboard/orders_store.dart';
|
||||
import 'package:cake_wallet/store/node_list_store.dart';
|
||||
import 'package:cake_wallet/store/secret_store.dart';
|
||||
|
@ -529,8 +529,8 @@ Future setup(
|
|||
getIt.registerFactoryParam<OrderDetailsPage, Order, void>((Order order, _) =>
|
||||
OrderDetailsPage(getIt.get<OrderDetailsViewModel>(param1: order)));
|
||||
|
||||
getIt.registerFactoryParam<WebViewPage, String, void>((String url, _) =>
|
||||
WebViewPage(ordersStore: getIt.get<OrdersStore>(), url: url));
|
||||
getIt.registerFactoryParam<WyrePage, String, void>((String url, _) =>
|
||||
WyrePage(ordersStore: getIt.get<OrdersStore>(), url: url));
|
||||
|
||||
getIt.registerFactory(() => SupportViewModel());
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart';
|
|||
import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart';
|
||||
import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart';
|
||||
import 'package:cake_wallet/src/screens/support/support_page.dart';
|
||||
import 'package:cake_wallet/src/screens/web_view/web_view_page.dart';
|
||||
import 'package:cake_wallet/src/screens/wyre/wyre_page.dart';
|
||||
import 'package:cake_wallet/store/settings_store.dart';
|
||||
import 'package:cake_wallet/view_model/monero_account_list/account_list_item.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
|
@ -293,10 +293,10 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
|||
builder: (_) =>
|
||||
getIt.get<OrderDetailsPage>(param1: settings.arguments as Order));
|
||||
|
||||
case Routes.webView:
|
||||
case Routes.wyre:
|
||||
return MaterialPageRoute<void>(
|
||||
builder: (_) =>
|
||||
getIt.get<WebViewPage>(param1: settings.arguments as String));
|
||||
getIt.get<WyrePage>(param1: settings.arguments as String));
|
||||
|
||||
case Routes.restoreWalletFromSeedDetails:
|
||||
final args = settings.arguments as List;
|
||||
|
|
|
@ -53,5 +53,5 @@ class Routes {
|
|||
static const restoreFromBackup = '/restore_from_backup';
|
||||
static const support = '/support';
|
||||
static const orderDetails = '/order_details';
|
||||
static const webView = '/web_view';
|
||||
static const wyre = '/wyre';
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
import 'package:cake_wallet/entities/find_order_by_id.dart';
|
||||
import 'package:cake_wallet/entities/wallet_type.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/routes.dart';
|
||||
|
@ -16,6 +15,7 @@ import 'package:cake_wallet/src/screens/dashboard/widgets/sync_indicator.dart';
|
|||
import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
|
||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||
import 'package:smooth_page_indicator/smooth_page_indicator.dart';
|
||||
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
||||
|
||||
class DashboardPage extends BasePage {
|
||||
DashboardPage({
|
||||
|
@ -126,26 +126,40 @@ class DashboardPage extends BasePage {
|
|||
title: S.of(context).exchange,
|
||||
route: Routes.exchange),
|
||||
if (walletViewModel.type == WalletType.bitcoin) Observer(
|
||||
builder: (_) => ActionButton(
|
||||
image: buyImage,
|
||||
title: S.of(context).buy,
|
||||
onClick: walletViewModel.isRunningWebView
|
||||
? null
|
||||
: () async {
|
||||
walletViewModel.isRunningWebView = true;
|
||||
final url = await walletViewModel.getWyreUrl();
|
||||
if (url.isNotEmpty) {
|
||||
await Navigator.of(context)
|
||||
.pushNamed(Routes.webView, arguments: url);
|
||||
builder: (_) => Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.topCenter,
|
||||
children: [
|
||||
if (walletViewModel.isRunningWebView) Positioned(
|
||||
top: -5,
|
||||
child: SpinKitRing(
|
||||
color: Theme.of(context).buttonColor,
|
||||
lineWidth: 3,
|
||||
size: 70.0,
|
||||
),
|
||||
),
|
||||
ActionButton(
|
||||
image: buyImage,
|
||||
title: S.of(context).buy,
|
||||
onClick: walletViewModel.isRunningWebView
|
||||
? null
|
||||
: () async {
|
||||
walletViewModel.isRunningWebView = true;
|
||||
final url = await walletViewModel.getWyreUrl();
|
||||
if (url.isNotEmpty) {
|
||||
await Navigator.of(context)
|
||||
.pushNamed(Routes.wyre, arguments: url);
|
||||
|
||||
final orderId = walletViewModel.ordersStore.orderId;
|
||||
final orderId = walletViewModel.ordersStore.orderId;
|
||||
|
||||
if (orderId.isNotEmpty) {
|
||||
await walletViewModel.saveOrder(orderId);
|
||||
}
|
||||
}
|
||||
walletViewModel.isRunningWebView = false;
|
||||
})),
|
||||
if (orderId.isNotEmpty) {
|
||||
await walletViewModel.saveOrder(orderId);
|
||||
}
|
||||
}
|
||||
walletViewModel.isRunningWebView = false;
|
||||
})
|
||||
],
|
||||
)),
|
||||
],
|
||||
)),
|
||||
)
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
import 'dart:io';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||
import 'package:cake_wallet/store/dashboard/orders_store.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:webview_flutter/webview_flutter.dart';
|
||||
|
||||
class WebViewPage extends BasePage {
|
||||
WebViewPage({@required this.ordersStore, @required this.url});
|
||||
class WyrePage extends BasePage {
|
||||
WyrePage({@required this.ordersStore, @required this.url});
|
||||
|
||||
final OrdersStore ordersStore;
|
||||
final String url;
|
||||
|
@ -14,22 +15,28 @@ class WebViewPage extends BasePage {
|
|||
@override
|
||||
String get title => S.current.buy;
|
||||
|
||||
@override
|
||||
Color get backgroundDarkColor => Colors.white;
|
||||
|
||||
@override
|
||||
Color get titleColor => Palette.darkBlueCraiola;
|
||||
|
||||
@override
|
||||
Widget body(BuildContext context) =>
|
||||
WebViewPageBody(ordersStore: ordersStore,url: url);
|
||||
WyrePageBody(ordersStore: ordersStore,url: url);
|
||||
}
|
||||
|
||||
class WebViewPageBody extends StatefulWidget {
|
||||
WebViewPageBody({this.ordersStore, this.url});
|
||||
class WyrePageBody extends StatefulWidget {
|
||||
WyrePageBody({this.ordersStore, this.url});
|
||||
|
||||
final OrdersStore ordersStore;
|
||||
final String url;
|
||||
|
||||
@override
|
||||
WebViewPageBodyState createState() => WebViewPageBodyState();
|
||||
WyrePageBodyState createState() => WyrePageBodyState();
|
||||
}
|
||||
|
||||
class WebViewPageBodyState extends State<WebViewPageBody> {
|
||||
class WyrePageBodyState extends State<WyrePageBody> {
|
||||
String orderId;
|
||||
WebViewController _webViewController;
|
||||
GlobalKey _webViewkey;
|
|
@ -56,6 +56,7 @@ dependencies:
|
|||
dotted_border: ^1.0.5
|
||||
smooth_page_indicator: ^0.2.0
|
||||
webview_flutter: ^1.0.7
|
||||
flutter_spinkit: ^4.1.2
|
||||
|
||||
# The following adds the Cupertino Icons font to your application.
|
||||
# Use with the CupertinoIcons class for iOS style icons.
|
||||
|
|
Loading…
Reference in a new issue