mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2025-05-04 03:42:19 +00:00
hide or show Swap features based on configuration
This commit is contained in:
parent
2c07f2c13b
commit
42b728eb08
5 changed files with 122 additions and 106 deletions
lib
pages
home_view/sub_widgets
token_view/sub_widgets
wallet_view
pages_desktop_specific
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
|
||||||
|
import '../../../app_config.dart';
|
||||||
import '../../../providers/providers.dart';
|
import '../../../providers/providers.dart';
|
||||||
import '../../../themes/stack_colors.dart';
|
import '../../../themes/stack_colors.dart';
|
||||||
import '../../../utilities/text_styles.dart';
|
import '../../../utilities/text_styles.dart';
|
||||||
|
@ -86,55 +88,57 @@ class _HomeViewButtonBarState extends ConsumerState<HomeViewButtonBar> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(
|
if (AppConfig.hasFeature(AppFeature.swap))
|
||||||
width: 8,
|
const SizedBox(
|
||||||
),
|
width: 8,
|
||||||
Expanded(
|
),
|
||||||
child: TextButton(
|
if (AppConfig.hasFeature(AppFeature.swap))
|
||||||
style: selectedIndex == 1
|
Expanded(
|
||||||
? Theme.of(context)
|
child: TextButton(
|
||||||
.extension<StackColors>()!
|
style: selectedIndex == 1
|
||||||
.getPrimaryEnabledButtonStyle(context)!
|
? Theme.of(context)
|
||||||
.copyWith(
|
.extension<StackColors>()!
|
||||||
minimumSize:
|
.getPrimaryEnabledButtonStyle(context)!
|
||||||
MaterialStateProperty.all<Size>(const Size(46, 36)),
|
.copyWith(
|
||||||
)
|
minimumSize:
|
||||||
: Theme.of(context)
|
MaterialStateProperty.all<Size>(const Size(46, 36)),
|
||||||
.extension<StackColors>()!
|
)
|
||||||
.getSecondaryEnabledButtonStyle(context)!
|
: Theme.of(context)
|
||||||
.copyWith(
|
.extension<StackColors>()!
|
||||||
minimumSize:
|
.getSecondaryEnabledButtonStyle(context)!
|
||||||
MaterialStateProperty.all<Size>(const Size(46, 36)),
|
.copyWith(
|
||||||
),
|
minimumSize:
|
||||||
onPressed: () async {
|
MaterialStateProperty.all<Size>(const Size(46, 36)),
|
||||||
FocusScope.of(context).unfocus();
|
),
|
||||||
if (selectedIndex != 1) {
|
onPressed: () async {
|
||||||
ref.read(homeViewPageIndexStateProvider.state).state = 1;
|
FocusScope.of(context).unfocus();
|
||||||
}
|
if (selectedIndex != 1) {
|
||||||
// DateTime now = DateTime.now();
|
ref.read(homeViewPageIndexStateProvider.state).state = 1;
|
||||||
// if (ref.read(prefsChangeNotifierProvider).externalCalls) {
|
}
|
||||||
// print("loading?");
|
// DateTime now = DateTime.now();
|
||||||
// await ExchangeDataLoadingService().loadAll(ref);
|
// if (ref.read(prefsChangeNotifierProvider).externalCalls) {
|
||||||
// }
|
// print("loading?");
|
||||||
// if (now.difference(_lastRefreshed) > _refreshInterval) {
|
// await ExchangeDataLoadingService().loadAll(ref);
|
||||||
// await ExchangeDataLoadingService().loadAll(ref);
|
// }
|
||||||
// }
|
// if (now.difference(_lastRefreshed) > _refreshInterval) {
|
||||||
},
|
// await ExchangeDataLoadingService().loadAll(ref);
|
||||||
child: Text(
|
// }
|
||||||
"Swap",
|
},
|
||||||
style: STextStyles.button(context).copyWith(
|
child: Text(
|
||||||
fontSize: 14,
|
"Swap",
|
||||||
color: selectedIndex == 1
|
style: STextStyles.button(context).copyWith(
|
||||||
? Theme.of(context)
|
fontSize: 14,
|
||||||
.extension<StackColors>()!
|
color: selectedIndex == 1
|
||||||
.buttonTextPrimary
|
? Theme.of(context)
|
||||||
: Theme.of(context)
|
.extension<StackColors>()!
|
||||||
.extension<StackColors>()!
|
.buttonTextPrimary
|
||||||
.buttonTextSecondary,
|
: Theme.of(context)
|
||||||
|
.extension<StackColors>()!
|
||||||
|
.buttonTextSecondary,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
width: 8,
|
width: 8,
|
||||||
),
|
),
|
||||||
|
|
|
@ -14,12 +14,10 @@ import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
|
import 'package:tuple/tuple.dart';
|
||||||
|
|
||||||
|
import '../../../app_config.dart';
|
||||||
import '../../../models/isar/models/ethereum/eth_contract.dart';
|
import '../../../models/isar/models/ethereum/eth_contract.dart';
|
||||||
import '../../buy_view/buy_in_wallet_view.dart';
|
|
||||||
import '../../exchange_view/wallet_initiated_exchange_view.dart';
|
|
||||||
import '../../receive_view/receive_view.dart';
|
|
||||||
import '../../send_view/token_send_view.dart';
|
|
||||||
import '../../wallet_view/sub_widgets/wallet_refresh_button.dart';
|
|
||||||
import '../../../providers/global/locale_provider.dart';
|
import '../../../providers/global/locale_provider.dart';
|
||||||
import '../../../providers/global/prefs_provider.dart';
|
import '../../../providers/global/prefs_provider.dart';
|
||||||
import '../../../providers/global/price_provider.dart';
|
import '../../../providers/global/price_provider.dart';
|
||||||
|
@ -37,7 +35,11 @@ import '../../../wallets/isar/providers/eth/token_balance_provider.dart';
|
||||||
import '../../../wallets/isar/providers/wallet_info_provider.dart';
|
import '../../../wallets/isar/providers/wallet_info_provider.dart';
|
||||||
import '../../../widgets/conditional_parent.dart';
|
import '../../../widgets/conditional_parent.dart';
|
||||||
import '../../../widgets/rounded_container.dart';
|
import '../../../widgets/rounded_container.dart';
|
||||||
import 'package:tuple/tuple.dart';
|
import '../../buy_view/buy_in_wallet_view.dart';
|
||||||
|
import '../../exchange_view/wallet_initiated_exchange_view.dart';
|
||||||
|
import '../../receive_view/receive_view.dart';
|
||||||
|
import '../../send_view/token_send_view.dart';
|
||||||
|
import '../../wallet_view/sub_widgets/wallet_refresh_button.dart';
|
||||||
|
|
||||||
class TokenSummary extends ConsumerWidget {
|
class TokenSummary extends ConsumerWidget {
|
||||||
const TokenSummary({
|
const TokenSummary({
|
||||||
|
@ -249,18 +251,20 @@ class TokenWalletOptions extends ConsumerWidget {
|
||||||
subLabel: "Send",
|
subLabel: "Send",
|
||||||
iconAssetPathSVG: Assets.svg.arrowUpRight,
|
iconAssetPathSVG: Assets.svg.arrowUpRight,
|
||||||
),
|
),
|
||||||
const SizedBox(
|
if (AppConfig.hasFeature(AppFeature.swap))
|
||||||
width: 16,
|
const SizedBox(
|
||||||
),
|
width: 16,
|
||||||
TokenOptionsButton(
|
),
|
||||||
onPressed: () => _onExchangePressed(context),
|
if (AppConfig.hasFeature(AppFeature.swap))
|
||||||
subLabel: "Swap",
|
TokenOptionsButton(
|
||||||
iconAssetPathSVG: ref.watch(
|
onPressed: () => _onExchangePressed(context),
|
||||||
themeProvider.select(
|
subLabel: "Swap",
|
||||||
(value) => value.assets.exchange,
|
iconAssetPathSVG: ref.watch(
|
||||||
|
themeProvider.select(
|
||||||
|
(value) => value.assets.exchange,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
width: 16,
|
width: 16,
|
||||||
),
|
),
|
||||||
|
|
|
@ -16,31 +16,12 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
|
import 'package:tuple/tuple.dart';
|
||||||
|
|
||||||
|
import '../../app_config.dart';
|
||||||
import '../../frost_route_generator.dart';
|
import '../../frost_route_generator.dart';
|
||||||
import '../../models/isar/exchange_cache/currency.dart';
|
import '../../models/isar/exchange_cache/currency.dart';
|
||||||
import '../../notifications/show_flush_bar.dart';
|
import '../../notifications/show_flush_bar.dart';
|
||||||
import '../buy_view/buy_in_wallet_view.dart';
|
|
||||||
import '../cashfusion/cashfusion_view.dart';
|
|
||||||
import '../coin_control/coin_control_view.dart';
|
|
||||||
import '../exchange_view/wallet_initiated_exchange_view.dart';
|
|
||||||
import '../home_view/home_view.dart';
|
|
||||||
import '../monkey/monkey_view.dart';
|
|
||||||
import '../notification_views/notifications_view.dart';
|
|
||||||
import '../ordinals/ordinals_view.dart';
|
|
||||||
import '../paynym/paynym_claim_view.dart';
|
|
||||||
import '../paynym/paynym_home_view.dart';
|
|
||||||
import '../receive_view/receive_view.dart';
|
|
||||||
import '../send_view/frost_ms/frost_send_view.dart';
|
|
||||||
import '../send_view/send_view.dart';
|
|
||||||
import '../settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart';
|
|
||||||
import '../settings_views/wallet_settings_view/wallet_settings_view.dart';
|
|
||||||
import '../special/firo_rescan_recovery_error_dialog.dart';
|
|
||||||
import '../token_view/my_tokens_view.dart';
|
|
||||||
import 'sub_widgets/transactions_list.dart';
|
|
||||||
import 'sub_widgets/wallet_summary.dart';
|
|
||||||
import 'transaction_views/all_transactions_view.dart';
|
|
||||||
import 'transaction_views/tx_v2/all_transactions_v2_view.dart';
|
|
||||||
import 'transaction_views/tx_v2/transaction_v2_list.dart';
|
|
||||||
import '../../providers/global/active_wallet_provider.dart';
|
import '../../providers/global/active_wallet_provider.dart';
|
||||||
import '../../providers/global/auto_swb_service_provider.dart';
|
import '../../providers/global/auto_swb_service_provider.dart';
|
||||||
import '../../providers/global/paynym_api_provider.dart';
|
import '../../providers/global/paynym_api_provider.dart';
|
||||||
|
@ -95,7 +76,28 @@ import '../../widgets/wallet_navigation_bar/components/icons/receive_nav_icon.da
|
||||||
import '../../widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart';
|
import '../../widgets/wallet_navigation_bar/components/icons/send_nav_icon.dart';
|
||||||
import '../../widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart';
|
import '../../widgets/wallet_navigation_bar/components/wallet_navigation_bar_item.dart';
|
||||||
import '../../widgets/wallet_navigation_bar/wallet_navigation_bar.dart';
|
import '../../widgets/wallet_navigation_bar/wallet_navigation_bar.dart';
|
||||||
import 'package:tuple/tuple.dart';
|
import '../buy_view/buy_in_wallet_view.dart';
|
||||||
|
import '../cashfusion/cashfusion_view.dart';
|
||||||
|
import '../coin_control/coin_control_view.dart';
|
||||||
|
import '../exchange_view/wallet_initiated_exchange_view.dart';
|
||||||
|
import '../home_view/home_view.dart';
|
||||||
|
import '../monkey/monkey_view.dart';
|
||||||
|
import '../notification_views/notifications_view.dart';
|
||||||
|
import '../ordinals/ordinals_view.dart';
|
||||||
|
import '../paynym/paynym_claim_view.dart';
|
||||||
|
import '../paynym/paynym_home_view.dart';
|
||||||
|
import '../receive_view/receive_view.dart';
|
||||||
|
import '../send_view/frost_ms/frost_send_view.dart';
|
||||||
|
import '../send_view/send_view.dart';
|
||||||
|
import '../settings_views/wallet_settings_view/wallet_network_settings_view/wallet_network_settings_view.dart';
|
||||||
|
import '../settings_views/wallet_settings_view/wallet_settings_view.dart';
|
||||||
|
import '../special/firo_rescan_recovery_error_dialog.dart';
|
||||||
|
import '../token_view/my_tokens_view.dart';
|
||||||
|
import 'sub_widgets/transactions_list.dart';
|
||||||
|
import 'sub_widgets/wallet_summary.dart';
|
||||||
|
import 'transaction_views/all_transactions_view.dart';
|
||||||
|
import 'transaction_views/tx_v2/all_transactions_v2_view.dart';
|
||||||
|
import 'transaction_views/tx_v2/transaction_v2_list.dart';
|
||||||
|
|
||||||
/// [eventBus] should only be set during testing
|
/// [eventBus] should only be set during testing
|
||||||
class WalletView extends ConsumerStatefulWidget {
|
class WalletView extends ConsumerStatefulWidget {
|
||||||
|
@ -1059,7 +1061,8 @@ class _WalletViewState extends ConsumerState<WalletView> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
if (Constants.enableExchange &&
|
if (Constants.enableExchange &&
|
||||||
ref.watch(pWalletCoin(walletId)) is! FrostCurrency)
|
ref.watch(pWalletCoin(walletId)) is! FrostCurrency &&
|
||||||
|
AppConfig.hasFeature(AppFeature.swap))
|
||||||
WalletNavigationBarItemData(
|
WalletNavigationBarItemData(
|
||||||
label: "Swap",
|
label: "Swap",
|
||||||
icon: const ExchangeNavIcon(),
|
icon: const ExchangeNavIcon(),
|
||||||
|
|
|
@ -14,15 +14,16 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
|
|
||||||
import '../app_config.dart';
|
import '../app_config.dart';
|
||||||
import 'desktop_menu_item.dart';
|
|
||||||
import 'settings/settings_menu.dart';
|
|
||||||
import '../providers/desktop/current_desktop_menu_item.dart';
|
import '../providers/desktop/current_desktop_menu_item.dart';
|
||||||
import '../themes/stack_colors.dart';
|
import '../themes/stack_colors.dart';
|
||||||
import '../utilities/assets.dart';
|
import '../utilities/assets.dart';
|
||||||
import '../utilities/text_styles.dart';
|
import '../utilities/text_styles.dart';
|
||||||
import '../widgets/desktop/desktop_tor_status_button.dart';
|
import '../widgets/desktop/desktop_tor_status_button.dart';
|
||||||
import '../widgets/desktop/living_stack_icon.dart';
|
import '../widgets/desktop/living_stack_icon.dart';
|
||||||
|
import 'desktop_menu_item.dart';
|
||||||
|
import 'settings/settings_menu.dart';
|
||||||
|
|
||||||
enum DesktopMenuItemId {
|
enum DesktopMenuItemId {
|
||||||
myStack,
|
myStack,
|
||||||
|
@ -186,17 +187,19 @@ class _DesktopMenuState extends ConsumerState<DesktopMenu> {
|
||||||
onChanged: updateSelectedMenuItem,
|
onChanged: updateSelectedMenuItem,
|
||||||
controller: controllers[0],
|
controller: controllers[0],
|
||||||
),
|
),
|
||||||
const SizedBox(
|
if (AppConfig.hasFeature(AppFeature.swap))
|
||||||
height: 2,
|
const SizedBox(
|
||||||
),
|
height: 2,
|
||||||
DesktopMenuItem(
|
),
|
||||||
duration: duration,
|
if (AppConfig.hasFeature(AppFeature.swap))
|
||||||
icon: const DesktopExchangeIcon(),
|
DesktopMenuItem(
|
||||||
label: "Swap",
|
duration: duration,
|
||||||
value: DesktopMenuItemId.exchange,
|
icon: const DesktopExchangeIcon(),
|
||||||
onChanged: updateSelectedMenuItem,
|
label: "Swap",
|
||||||
controller: controllers[1],
|
value: DesktopMenuItemId.exchange,
|
||||||
),
|
onChanged: updateSelectedMenuItem,
|
||||||
|
controller: controllers[1],
|
||||||
|
),
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
height: 2,
|
height: 2,
|
||||||
),
|
),
|
||||||
|
|
|
@ -15,16 +15,12 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
|
|
||||||
|
import '../../../../app_config.dart';
|
||||||
import '../../../../notifications/show_flush_bar.dart';
|
import '../../../../notifications/show_flush_bar.dart';
|
||||||
import '../../../../pages/monkey/monkey_view.dart';
|
import '../../../../pages/monkey/monkey_view.dart';
|
||||||
import '../../../../pages/paynym/paynym_claim_view.dart';
|
import '../../../../pages/paynym/paynym_claim_view.dart';
|
||||||
import '../../../../pages/paynym/paynym_home_view.dart';
|
import '../../../../pages/paynym/paynym_home_view.dart';
|
||||||
import '../../../cashfusion/desktop_cashfusion_view.dart';
|
|
||||||
import '../../../coin_control/desktop_coin_control_view.dart';
|
|
||||||
import '../../../desktop_menu.dart';
|
|
||||||
import '../desktop_wallet_view.dart';
|
|
||||||
import 'more_features/more_features_dialog.dart';
|
|
||||||
import '../../../ordinals/desktop_ordinals_view.dart';
|
|
||||||
import '../../../../providers/desktop/current_desktop_menu_item.dart';
|
import '../../../../providers/desktop/current_desktop_menu_item.dart';
|
||||||
import '../../../../providers/global/paynym_api_provider.dart';
|
import '../../../../providers/global/paynym_api_provider.dart';
|
||||||
import '../../../../providers/providers.dart';
|
import '../../../../providers/providers.dart';
|
||||||
|
@ -48,6 +44,12 @@ import '../../../../widgets/desktop/desktop_dialog.dart';
|
||||||
import '../../../../widgets/desktop/primary_button.dart';
|
import '../../../../widgets/desktop/primary_button.dart';
|
||||||
import '../../../../widgets/desktop/secondary_button.dart';
|
import '../../../../widgets/desktop/secondary_button.dart';
|
||||||
import '../../../../widgets/loading_indicator.dart';
|
import '../../../../widgets/loading_indicator.dart';
|
||||||
|
import '../../../cashfusion/desktop_cashfusion_view.dart';
|
||||||
|
import '../../../coin_control/desktop_coin_control_view.dart';
|
||||||
|
import '../../../desktop_menu.dart';
|
||||||
|
import '../../../ordinals/desktop_ordinals_view.dart';
|
||||||
|
import '../desktop_wallet_view.dart';
|
||||||
|
import 'more_features/more_features_dialog.dart';
|
||||||
|
|
||||||
class DesktopWalletFeatures extends ConsumerStatefulWidget {
|
class DesktopWalletFeatures extends ConsumerStatefulWidget {
|
||||||
const DesktopWalletFeatures({
|
const DesktopWalletFeatures({
|
||||||
|
@ -366,7 +368,7 @@ class _DesktopWalletFeaturesState extends ConsumerState<DesktopWalletFeatures> {
|
||||||
|
|
||||||
return Row(
|
return Row(
|
||||||
children: [
|
children: [
|
||||||
if (Constants.enableExchange)
|
if (Constants.enableExchange && AppConfig.hasFeature(AppFeature.swap))
|
||||||
SecondaryButton(
|
SecondaryButton(
|
||||||
label: "Swap",
|
label: "Swap",
|
||||||
width: buttonWidth,
|
width: buttonWidth,
|
||||||
|
|
Loading…
Reference in a new issue