diff --git a/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart b/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart index 5f89c54ae..9dc653118 100644 --- a/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart +++ b/lib/pages/paynym/dialogs/confirm_paynym_connect_dialog.dart @@ -3,7 +3,11 @@ import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/format.dart'; +import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/theme/stack_colors.dart'; +import 'package:stackwallet/utilities/util.dart'; +import 'package:stackwallet/widgets/desktop/desktop_dialog.dart'; +import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; import 'package:stackwallet/widgets/desktop/secondary_button.dart'; import 'package:stackwallet/widgets/stack_dialog.dart'; @@ -22,31 +26,113 @@ class ConfirmPaynymConnectDialog extends StatelessWidget { final int amount; final Coin coin; + String get title => "Connect to $nymName"; + + String get message => "A one-time connection fee of " + "${Format.satoshisToAmount(amount, coin: coin)} ${coin.ticker} " + "will be charged to connect to this PayNym.\n\nThis fee " + "covers the cost of creating a one-time transaction to create a " + "record on the blockchain. This keeps PayNyms decentralized."; + @override Widget build(BuildContext context) { - return StackDialog( - title: "Connect to $nymName", - icon: SvgPicture.asset( - Assets.svg.userPlus, - color: Theme.of(context).extension()!.textDark, - width: 24, - height: 24, - ), - message: "A one-time connection fee of " - "${Format.satoshisToAmount(amount, coin: coin)} ${coin.ticker} " - "will be charged to connect to this PayNym.\n\nThis fee " - "covers the cost of creating a one-time transaction to create a " - "record on the blockchain. This keeps PayNyms decentralized.", - leftButton: SecondaryButton( - buttonHeight: ButtonHeight.xl, - label: "Cancel", - onPressed: Navigator.of(context).pop, - ), - rightButton: PrimaryButton( - buttonHeight: ButtonHeight.xl, - label: "Connect", - onPressed: onConfirmPressed, - ), - ); + if (Util.isDesktop) { + return DesktopDialog( + maxHeight: double.infinity, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(left: 40), + child: SvgPicture.asset( + Assets.svg.userPlus, + color: Theme.of(context).extension()!.textDark, + width: 32, + height: 32, + ), + ), + const DesktopDialogCloseButton(), + ], + ), + Padding( + padding: const EdgeInsets.only( + left: 40, + bottom: 32, + right: 40, + ), + child: Text( + title, + style: STextStyles.desktopH3(context), + ), + ), + Padding( + padding: const EdgeInsets.only( + left: 40, + right: 40, + ), + child: Text( + message, + style: STextStyles.desktopTextMedium(context).copyWith( + color: Theme.of(context).extension()!.textDark3, + ), + ), + ), + Padding( + padding: const EdgeInsets.only( + left: 40, + bottom: 40, + right: 40, + top: 32, + ), + child: Row( + children: [ + Expanded( + child: SecondaryButton( + buttonHeight: ButtonHeight.l, + label: "Cancel", + onPressed: Navigator.of(context).pop, + ), + ), + const SizedBox( + width: 16, + ), + Expanded( + child: PrimaryButton( + buttonHeight: ButtonHeight.l, + label: "Connect", + onPressed: onConfirmPressed, + ), + ), + ], + ), + ) + ], + ), + ); + } else { + return StackDialog( + title: title, + icon: SvgPicture.asset( + Assets.svg.userPlus, + color: Theme.of(context).extension()!.textDark, + width: 24, + height: 24, + ), + message: message, + leftButton: SecondaryButton( + buttonHeight: ButtonHeight.xl, + label: "Cancel", + onPressed: Navigator.of(context).pop, + ), + rightButton: PrimaryButton( + buttonHeight: ButtonHeight.xl, + label: "Connect", + onPressed: onConfirmPressed, + ), + ); + } } }