/* * This file is part of Stack Wallet. * * Copyright (c) 2023 Cypher Stack * All Rights Reserved. * The code is distributed under GPLv3 license, see LICENSE file for details. * Generated by sneurlax on 2023-07-26 * */ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/services/mixins/fusion_wallet_interface.dart'; import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart'; class CashFusionView extends ConsumerStatefulWidget { const CashFusionView({ super.key, required this.walletId, }); static const routeName = "/cashFusionView"; final String walletId; @override ConsumerState createState() => _CashFusionViewState(); } class _CashFusionViewState extends ConsumerState { @override void initState() { super.initState(); } @override void dispose() { super.dispose(); } @override Widget build(BuildContext context) { return Background( child: SafeArea( child: Scaffold( backgroundColor: Theme.of(context).extension()!.background, appBar: AppBar( automaticallyImplyLeading: false, leading: const AppBarBackButton(), title: Text( "CashFusion", style: STextStyles.navBarTitle(context), ), titleSpacing: 0, actions: [ AspectRatio( aspectRatio: 1, child: AppBarIconButton( size: 36, icon: SvgPicture.asset( Assets.svg.circleQuestion, width: 20, height: 20, color: Theme.of(context) .extension()! .topNavIconPrimary, ), onPressed: () async { //' TODO show about? }, ), ), ], ), body: LayoutBuilder( builder: (builderContext, constraints) { return SingleChildScrollView( child: ConstrainedBox( constraints: BoxConstraints( minHeight: constraints.maxHeight, ), child: IntrinsicHeight( child: Padding( padding: const EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ RoundedWhiteContainer( child: Text( "CashFusion allows you to anonymize your BCH coins." " You must be connected to the Tor network.", style: STextStyles.w500_12(context).copyWith( color: Theme.of(context) .extension()! .textSubtitle1, ), ), ), const SizedBox( height: 16, ), Text( "Server settings", style: STextStyles.w500_14(context).copyWith( color: Theme.of(context) .extension()! .textDark3, ), ), const SizedBox( height: 12, ), TextField(), // TODO replace placholder textfield const SizedBox( height: 10, ), TextField(), // TODO replace placholder textfield const SizedBox( height: 10, ), Checkbox( value: true, onChanged: (_) {}, ), // TODO replace placholder Checkbox const SizedBox( height: 16, ), Text( "Rounds of fusion", style: STextStyles.w500_14(context).copyWith( color: Theme.of(context) .extension()! .textDark3, ), ), const SizedBox( height: 12, ), TextField(), // TODO replace placholder textfield with button for bottom sheet const SizedBox( height: 16, ), // Row( // mainAxisAlignment: MainAxisAlignment.spaceBetween, // children: [ // Text( // "Tor status", // textAlign: TextAlign.left, // style: isDesktop // ? STextStyles.desktopTextExtraExtraSmall(context) // : STextStyles.smallMed12(context), // ), // CustomTextButton( // text: ref.watch(prefsChangeNotifierProvider // .select((value) => value.useTor)) // ? "Disconnect" // : "Connect", // onTap: onTorTapped, // ), // ], // ), // const SizedBox( // height: 12, // ),RoundedWhiteContainer( // borderColor: isDesktop // ? Theme.of(context).extension()!.background // : null, // padding: // isDesktop ? const EdgeInsets.all(16) : const EdgeInsets.all(12), // child: Row( // children: [ // if (ref.watch(prefsChangeNotifierProvider // .select((value) => value.useTor))) // Container( // width: _iconSize, // height: _iconSize, // decoration: BoxDecoration( // color: Theme.of(context) // .extension()! // .accentColorGreen // .withOpacity(0.2), // borderRadius: BorderRadius.circular(_iconSize), // ), // child: Center( // child: SvgPicture.asset( // Assets.svg.tor, // height: isDesktop ? 19 : 14, // width: isDesktop ? 19 : 14, // color: Theme.of(context) // .extension()! // .accentColorGreen, // ), // ), // ), // if (!ref.watch(prefsChangeNotifierProvider // .select((value) => value.useTor))) // Container( // width: _iconSize, // height: _iconSize, // decoration: BoxDecoration( // color: Theme.of(context) // .extension()! // .textDark // .withOpacity(0.08), // borderRadius: BorderRadius.circular(_iconSize), // ), // child: Center( // child: SvgPicture.asset( // Assets.svg.tor, // height: isDesktop ? 19 : 14, // width: isDesktop ? 19 : 14, // color: Theme.of(context) // .extension()! // .textDark, // ), // ), // ), // SizedBox( // width: _boxPadding, // ), // TorSubscription( // onTorStatusChanged: (status) { // setState(() { // _torConnectionStatus = status; // }); // }, // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // Text( // "Tor status", // style: STextStyles.desktopTextExtraExtraSmall(context) // .copyWith( // color: Theme.of(context) // .extension()! // .textDark, // ), // ), // if (_torConnectionStatus == TorConnectionStatus.connected) // Text( // "Connected", // style: // STextStyles.desktopTextExtraExtraSmall(context), // ), // if (_torConnectionStatus == // TorConnectionStatus.connecting) // Text( // "Connecting...", // style: // STextStyles.desktopTextExtraExtraSmall(context), // ), // if (_torConnectionStatus == // TorConnectionStatus.disconnected) // Text( // "Disconnected", // style: // STextStyles.desktopTextExtraExtraSmall(context), // ), // ], // ), // ), // ], // ), // ), const SizedBox( height: 16, ), const Spacer(), PrimaryButton( label: "Start", onPressed: () => { (ref .read(walletsChangeNotifierProvider) .getManager(widget.walletId) .wallet as FusionWalletInterface) .fuse() }, ), ], ), ), ), ), ); }, ), ), ), ); } }