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
}