Skip to content

Commit 6de0759

Browse files
naezithCharlVS
authored andcommittedJan 10, 2025
Merge branch 'dev' into disable-trading-bot-setting
1 parent 4e7f329 commit 6de0759

File tree

6 files changed

+81
-63
lines changed

6 files changed

+81
-63
lines changed
 

‎.github/workflows/unit-tests-on-pr.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88

99
jobs:
1010
unit_tests_:
11-
runs-on: ubuntu-latest
11+
runs-on: [self-hosted, Linux]
1212
timeout-minutes: 15
1313

1414
steps:

‎app_build/build_config.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@
1818
}
1919
},
2020
"coins": {
21+
"fetch_at_build_enabled": true,
2122
"update_commit_on_build": true,
2223
"bundled_coins_repo_commit": "b27db8e6e1c6a9264219fef8292811122538088a",
2324
"coins_repo_api_url": "https://api.github.com/repos/KomodoPlatform/coins",
24-
"coins_repo_content_url": "https://raw.githubusercontent.com/KomodoPlatform/coins",
25+
"coins_repo_content_url": "https://komodoplatform.github.io/coins",
2526
"coins_repo_branch": "master",
2627
"runtime_updates_enabled": true,
2728
"mapped_files": {

‎lib/router/parsers/root_route_parser.dart

+18-13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:flutter/material.dart';
22
import 'package:web_dex/app_config/app_config.dart';
3+
import 'package:web_dex/bloc/coins_bloc/coins_bloc.dart';
34
import 'package:web_dex/model/first_uri_segment.dart';
45
import 'package:web_dex/router/parsers/base_route_parser.dart';
56
import 'package:web_dex/router/parsers/bridge_route_parser.dart';
@@ -11,22 +12,26 @@ import 'package:web_dex/router/parsers/wallet_route_parser.dart';
1112
import 'package:web_dex/router/routes.dart';
1213

1314
class RootRouteInformationParser extends RouteInformationParser<AppRoutePath> {
14-
final Map<String, BaseRouteParser> _parsers = {
15-
firstUriSegment.wallet: walletRouteParser,
16-
firstUriSegment.fiat: fiatRouteParser,
17-
firstUriSegment.dex: dexRouteParser,
18-
firstUriSegment.bridge: bridgeRouteParser,
19-
firstUriSegment.nfts: nftRouteParser,
20-
firstUriSegment.settings: settingsRouteParser,
21-
};
15+
RootRouteInformationParser(this.coinsBloc);
16+
17+
final CoinsBloc coinsBloc;
18+
19+
Map<String, BaseRouteParser> get _parsers => {
20+
firstUriSegment.wallet: WalletRouteParser(coinsBloc),
21+
firstUriSegment.fiat: fiatRouteParser,
22+
firstUriSegment.dex: dexRouteParser,
23+
firstUriSegment.bridge: bridgeRouteParser,
24+
firstUriSegment.nfts: nftRouteParser,
25+
firstUriSegment.settings: settingsRouteParser,
26+
};
2227

2328
@override
2429
Future<AppRoutePath> parseRouteInformation(
2530
RouteInformation routeInformation) async {
26-
final uri = Uri.parse(routeInformation.uri.path);
27-
final BaseRouteParser parser = _getRoutParser(uri);
31+
final BaseRouteParser parser =
32+
_getRoutParser(Uri.parse(routeInformation.uri.path));
2833

29-
return parser.getRoutePath(uri);
34+
return parser.getRoutePath(routeInformation.uri);
3035
}
3136

3237
@override
@@ -35,8 +40,8 @@ class RootRouteInformationParser extends RouteInformationParser<AppRoutePath> {
3540
}
3641

3742
BaseRouteParser _getRoutParser(Uri uri) {
38-
const defaultRouteParser =
39-
kIsWalletOnly ? walletRouteParser : dexRouteParser;
43+
final defaultRouteParser =
44+
kIsWalletOnly ? _parsers[firstUriSegment.wallet]! : dexRouteParser;
4045

4146
if (uri.pathSegments.isEmpty) return defaultRouteParser;
4247
return _parsers[uri.pathSegments.first] ?? defaultRouteParser;

‎lib/shared/widgets/logout_popup.dart

+55-47
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@ import 'package:easy_localization/easy_localization.dart';
22
import 'package:flutter/material.dart';
33
import 'package:flutter_bloc/flutter_bloc.dart';
44
import 'package:web_dex/app_config/app_config.dart';
5+
import 'package:komodo_ui_kit/komodo_ui_kit.dart';
56
import 'package:web_dex/bloc/auth_bloc/auth_bloc.dart';
6-
import 'package:web_dex/bloc/auth_bloc/auth_bloc_event.dart';
7-
import 'package:web_dex/blocs/blocs.dart';
7+
import 'package:web_dex/bloc/coins_bloc/coins_bloc.dart';
88
import 'package:web_dex/generated/codegen_loader.g.dart';
99
import 'package:web_dex/model/wallet.dart';
10-
import 'package:komodo_ui_kit/komodo_ui_kit.dart';
1110

1211
class LogOutPopup extends StatelessWidget {
1312
const LogOutPopup({
@@ -20,56 +19,65 @@ class LogOutPopup extends StatelessWidget {
2019

2120
@override
2221
Widget build(BuildContext context) {
23-
return Container(
24-
constraints: const BoxConstraints(maxWidth: 300),
25-
child: Column(
26-
crossAxisAlignment: CrossAxisAlignment.center,
27-
mainAxisSize: MainAxisSize.min,
28-
children: [
29-
SelectableText(
30-
LocaleKeys.logoutPopupTitle.tr(),
31-
style: const TextStyle(
32-
fontSize: 18,
33-
fontWeight: FontWeight.w700,
34-
),
35-
),
36-
const SizedBox(height: 12),
37-
if (currentWalletBloc.wallet?.config.type == WalletType.iguana)
38-
SelectableText(
39-
kIsWalletOnly
40-
? LocaleKeys.logoutPopupDescriptionWalletOnly.tr()
41-
: LocaleKeys.logoutPopupDescription.tr(),
42-
style: const TextStyle(
43-
fontSize: 14,
44-
fontWeight: FontWeight.w500,
45-
),
46-
),
47-
const SizedBox(height: 25),
48-
Row(
22+
return BlocBuilder<AuthBloc, AuthBlocState>(
23+
builder: (context, state) {
24+
final currentWallet = state.currentUser?.wallet;
25+
return Container(
26+
constraints: const BoxConstraints(maxWidth: 300),
27+
child: Column(
28+
crossAxisAlignment: CrossAxisAlignment.center,
4929
mainAxisSize: MainAxisSize.min,
5030
children: [
51-
UiUnderlineTextButton(
52-
key: const Key('popup-cancel-logout-button'),
53-
width: 120,
54-
height: 36,
55-
text: LocaleKeys.cancel.tr(),
56-
onPressed: onCancel,
31+
SelectableText(
32+
LocaleKeys.logoutPopupTitle.tr(),
33+
style: const TextStyle(
34+
fontSize: 18,
35+
fontWeight: FontWeight.w700,
36+
),
5737
),
58-
const SizedBox(width: 12),
59-
UiPrimaryButton(
60-
key: const Key('popup-confirm-logout-button'),
61-
width: 120,
62-
height: 36,
63-
text: LocaleKeys.logOut.tr(),
64-
onPressed: () {
65-
context.read<AuthBloc>().add(const AuthLogOutEvent());
66-
onConfirm();
67-
},
38+
const SizedBox(height: 12),
39+
if (currentWallet?.config.type == WalletType.iguana)
40+
SelectableText(
41+
kIsWalletOnly
42+
? LocaleKeys.logoutPopupDescriptionWalletOnly.tr()
43+
: LocaleKeys.logoutPopupDescription.tr(),
44+
style: const TextStyle(
45+
fontSize: 14,
46+
fontWeight: FontWeight.w500,
47+
),
48+
),
49+
const SizedBox(height: 25),
50+
Row(
51+
mainAxisSize: MainAxisSize.min,
52+
children: [
53+
UiUnderlineTextButton(
54+
key: const Key('popup-cancel-logout-button'),
55+
width: 120,
56+
height: 36,
57+
text: LocaleKeys.cancel.tr(),
58+
onPressed: onCancel,
59+
),
60+
const SizedBox(width: 12),
61+
UiPrimaryButton(
62+
key: const Key('popup-confirm-logout-button'),
63+
width: 120,
64+
height: 36,
65+
text: LocaleKeys.logOut.tr(),
66+
onPressed: () => _onConfirmLogout(context),
67+
),
68+
],
6869
),
6970
],
7071
),
71-
],
72-
),
72+
);
73+
},
7374
);
7475
}
76+
77+
void _onConfirmLogout(BuildContext context) {
78+
// stop listening to balance updates before logging out
79+
context.read<CoinsBloc>().add(CoinsSessionEnded());
80+
context.read<AuthBloc>().add(const AuthSignOutRequested());
81+
onConfirm();
82+
}
7583
}

‎lib/views/settings/widgets/general_settings/general_settings.dart

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:web_dex/shared/widgets/hidden_without_wallet.dart';
66
import 'package:web_dex/views/settings/widgets/general_settings/import_swaps.dart';
77
import 'package:web_dex/views/settings/widgets/general_settings/settings_download_logs.dart';
88
import 'package:web_dex/views/settings/widgets/general_settings/settings_manage_analytics.dart';
9+
import 'package:web_dex/views/settings/widgets/general_settings/settings_manage_test_coins.dart';
910
import 'package:web_dex/views/settings/widgets/general_settings/settings_manage_trading_bot.dart';
1011
import 'package:web_dex/views/settings/widgets/general_settings/settings_reset_activated_coins.dart';
1112
import 'package:web_dex/views/settings/widgets/general_settings/settings_theme_switcher.dart';
@@ -25,6 +26,8 @@ class GeneralSettings extends StatelessWidget {
2526
const SizedBox(height: 25),
2627
const SettingsManageAnalytics(),
2728
const SizedBox(height: 25),
29+
const SettingsManageTestCoins(),
30+
const SizedBox(height: 25),
2831
if (!kIsWalletOnly)
2932
const HiddenWithoutWallet(
3033
child: SettingsManageTradingBot(),

‎packages/komodo_ui_kit/lib/src/images/coin_icon.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ import 'dart:convert';
22
import 'package:flutter/material.dart';
33
import 'package:flutter/services.dart';
44

5-
const coinImagesFolder = 'coin_icons/png/';
5+
const coinImagesFolder = 'packages/komodo_defi_framework/assets/coin_icons/png/';
6+
// NB: ENSURE IT STAYS IN SYNC WITH MAIN PROJECT in `lib/src/utils/utils.dart`.
67
const mediaCdnUrl = 'https://komodoplatform.github.io/coins/icons/';
78

89
final Map<String, bool> _assetExistenceCache = {};

0 commit comments

Comments
 (0)
Please sign in to comment.