feat: add wallet sync state support chat (#2345)

Konstantin Ullrich committed Jul 3, 2025 at 03:17 UTC 50a12cac481c3adef492149df077a11ddb59c345
4 files changed +35
cw_core/lib/sync_status.dart
+29
@@ -9,6 +9,9 @@ class StartingScanSyncStatus extends SyncStatus {
9 final int beginHeight;
10 @override
11 double progress() => 0.0;
12 +
13 + @override
14 + String toString() => 'Starting Scan $beginHeight';
15 }
16
17 class SyncingSyncStatus extends SyncStatus {
@@ -42,22 +45,33 @@ class ProcessingSyncStatus extends SyncStatus {
45 @override
46 double progress() => 0.99;
47
48 + @override
49 + String toString() => 'Processing';
50 }
51
52 class SyncedSyncStatus extends SyncStatus {
53 @override
54 double progress() => 1.0;
55 +
56 + @override
57 + String toString() => 'Synced';
58 }
59
60 class SyncedTipSyncStatus extends SyncedSyncStatus {
61 SyncedTipSyncStatus(this.tip);
62
63 final int tip;
64 +
65 + @override
66 + String toString() => 'Synced Tip $tip';
67 }
68
69 class SyncronizingSyncStatus extends SyncStatus {
70 @override
71 double progress() => 0.0;
72 +
73 + @override
74 + String toString() => 'Synchronizing';
75 }
76
77 class NotConnectedSyncStatus extends SyncStatus {
@@ -65,16 +79,25 @@ class NotConnectedSyncStatus extends SyncStatus {
79
80 @override
81 double progress() => 0.0;
82 +
83 + @override
84 + String toString() => 'Not Connected';
85 }
86
87 class AttemptingSyncStatus extends SyncStatus {
88 @override
89 double progress() => 0.0;
90 +
91 + @override
92 + String toString() => 'Attempting';
93 }
94
95 class AttemptingScanSyncStatus extends SyncStatus {
96 @override
97 double progress() => 0.0;
98 +
99 + @override
100 + String toString() => 'Attempting Scan';
101 }
102
103 class FailedSyncStatus extends NotConnectedSyncStatus {
@@ -88,11 +111,17 @@ class FailedSyncStatus extends NotConnectedSyncStatus {
111 class ConnectingSyncStatus extends SyncStatus {
112 @override
113 double progress() => 0.0;
114 +
115 + @override
116 + String toString() => 'Connecting';
117 }
118
119 class ConnectedSyncStatus extends SyncStatus {
120 @override
121 double progress() => 0.0;
122 +
123 + @override
124 + String toString() => 'Connected';
125 }
126
127 class UnsupportedSyncStatus extends NotConnectedSyncStatus {}
lib/src/screens/support_chat/support_chat_page.dart
+1
@@ -28,6 +28,7 @@ class SupportChatPage extends BasePage {
28 appVersion: supportViewModel.appVersion,
29 fiatApiMode: supportViewModel.fiatApiMode,
30 walletType: supportViewModel.walletType,
31 + walletSyncState: supportViewModel.walletSyncState,
32 );
33 return Container();
34 },
lib/src/screens/support_chat/widgets/chatwoot_widget.dart
+3
@@ -13,6 +13,7 @@ class ChatwootWidget extends StatefulWidget {
13 required this.appVersion,
14 required this.fiatApiMode,
15 required this.walletType,
16 + required this.walletSyncState,
17 });
18
19 final SecureStorage secureStorage;
@@ -20,6 +21,7 @@ class ChatwootWidget extends StatefulWidget {
21 final String appVersion;
22 final String fiatApiMode;
23 final String walletType;
24 + final String walletSyncState;
25
26 @override
27 ChatwootWidgetState createState() => ChatwootWidgetState();
@@ -51,6 +53,7 @@ class ChatwootWidgetState extends State<ChatwootWidget> {
53 "app_version": widget.appVersion,
54 "fiat_api_mode": widget.fiatApiMode,
55 "wallet_type": widget.walletType,
56 + "wallet_sync_state": widget.walletSyncState,
57 });
58 }
59 }
lib/view_model/support_view_model.dart
+2
@@ -128,5 +128,7 @@ abstract class SupportViewModelBase with Store {
128
129 String get walletType => _appStore.wallet?.type.name ?? 'Unknown';
130
131 + String get walletSyncState => _appStore.wallet?.syncStatus.toString() ?? 'Unknown';
132 +
133 List<SettingsListItem> items;
134 }