feat: Add fiat api and last used wallet type to support chat (#2078)

Konstantin Ullrich committed Mar 11, 2025 at 14:27 UTC dcde3fd2530f179a298c1bedc02600cfc355f9e9
4 files changed +22 -6
lib/di.dart
+2 -1
@@ -1260,7 +1260,8 @@ Future<void> setup({
1260 getIt.registerFactoryParam<OrderDetailsPage, Order, void>(
1261 (Order order, _) => OrderDetailsPage(getIt.get<OrderDetailsViewModel>(param1: order)));
1262
1263 - getIt.registerFactory(() => SupportViewModel(getIt.get<SettingsStore>()));
1263 + getIt.registerFactory(() =>
1264 + SupportViewModel(getIt.get<SettingsStore>(), getIt.get<AppStore>()));
1265
1266 getIt.registerFactory(() => SupportPage(getIt.get<SupportViewModel>()));
1267
lib/src/screens/support_chat/support_chat_page.dart
+2
@@ -26,6 +26,8 @@ class SupportChatPage extends BasePage {
26 secureStorage,
27 supportUrl: supportViewModel.fetchUrl(authToken: snapshot.data!),
28 appVersion: supportViewModel.appVersion,
29 + fiatApiMode: supportViewModel.fiatApiMode,
30 + walletType: supportViewModel.walletType,
31 );
32 return Container();
33 },
lib/src/screens/support_chat/widgets/chatwoot_widget.dart
+9 -2
@@ -11,11 +11,15 @@ class ChatwootWidget extends StatefulWidget {
11 this.secureStorage, {
12 required this.supportUrl,
13 required this.appVersion,
14 + required this.fiatApiMode,
15 + required this.walletType,
16 });
17
18 final SecureStorage secureStorage;
19 final String supportUrl;
20 final String appVersion;
21 + final String fiatApiMode;
22 + final String walletType;
23
24 @override
25 ChatwootWidgetState createState() => ChatwootWidgetState();
@@ -43,8 +47,11 @@ class ChatwootWidgetState extends State<ChatwootWidget> {
47 if (eventType == 'loaded') {
48 final authToken = parsedMessage["config"]["authToken"];
49 _storeCookie(authToken as String);
46 - _setCustomAttributes(
47 - controller, {"app_version": widget.appVersion});
50 + _setCustomAttributes(controller, {
51 + "app_version": widget.appVersion,
52 + "fiat_api_mode": widget.fiatApiMode,
53 + "wallet_type": widget.walletType,
54 + });
55 }
56 }
57 },
lib/view_model/support_view_model.dart
+9 -3
@@ -1,5 +1,6 @@
1 import 'package:cake_wallet/.secrets.g.dart' as secrets;
2 import 'package:cake_wallet/generated/i18n.dart';
3 +import 'package:cake_wallet/store/app_store.dart';
4 import 'package:cake_wallet/store/settings_store.dart';
5 import 'package:cake_wallet/view_model/settings/link_list_item.dart';
6 import 'package:cake_wallet/view_model/settings/settings_list_item.dart';
@@ -11,9 +12,10 @@ part 'support_view_model.g.dart';
12 class SupportViewModel = SupportViewModelBase with _$SupportViewModel;
13
14 abstract class SupportViewModelBase with Store {
14 - final SettingsStore settingsStore;
15 + final SettingsStore _settingsStore;
16 + final AppStore _appStore;
17
16 - SupportViewModelBase(this.settingsStore)
18 + SupportViewModelBase(this._settingsStore, this._appStore)
19 : items = [
20 LinkListItem(
21 title: 'Email',
@@ -120,7 +122,11 @@ abstract class SupportViewModelBase with Store {
122 }
123
124 String get appVersion =>
123 - "${isMoneroOnly ? "Monero.com" : "Cake Wallet"} - ${settingsStore.appVersion}";
125 + "${isMoneroOnly ? "Monero.com" : "Cake Wallet"} - ${_settingsStore.appVersion}";
126 +
127 + String get fiatApiMode => _settingsStore.fiatApiMode.title;
128 +
129 + String get walletType => _appStore.wallet?.type.name ?? 'Unknown';
130
131 List<SettingsListItem> items;
132 }