@reown/appkit-react-native 0.0.0-develop-20251008155354 → 0.0.0-develop-20251114152149

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/lib/commonjs/AppKit.js +20 -6
  2. package/lib/commonjs/AppKit.js.map +1 -1
  3. package/lib/commonjs/hooks/useAccount.js +68 -5
  4. package/lib/commonjs/hooks/useAccount.js.map +1 -1
  5. package/lib/commonjs/hooks/useAppKit.js +41 -9
  6. package/lib/commonjs/hooks/useAppKit.js.map +1 -1
  7. package/lib/commonjs/hooks/useAppKitContext.js +46 -0
  8. package/lib/commonjs/hooks/useAppKitContext.js.map +1 -0
  9. package/lib/commonjs/hooks/useAppKitEvents.js +64 -4
  10. package/lib/commonjs/hooks/useAppKitEvents.js.map +1 -1
  11. package/lib/commonjs/hooks/useAppKitLogs.js +2 -8
  12. package/lib/commonjs/hooks/useAppKitLogs.js.map +1 -1
  13. package/lib/commonjs/hooks/useAppKitState.js +35 -2
  14. package/lib/commonjs/hooks/useAppKitState.js.map +1 -1
  15. package/lib/commonjs/hooks/useAppKitTheme.js +74 -0
  16. package/lib/commonjs/hooks/useAppKitTheme.js.map +1 -0
  17. package/lib/commonjs/hooks/useProvider.js +3 -4
  18. package/lib/commonjs/hooks/useProvider.js.map +1 -1
  19. package/lib/commonjs/hooks/useWalletInfo.js +33 -2
  20. package/lib/commonjs/hooks/useWalletInfo.js.map +1 -1
  21. package/lib/commonjs/index.js +7 -0
  22. package/lib/commonjs/index.js.map +1 -1
  23. package/lib/commonjs/modal/w3m-modal/styles.js +2 -1
  24. package/lib/commonjs/modal/w3m-modal/styles.js.map +1 -1
  25. package/lib/commonjs/partials/w3m-connecting-body/index.js +2 -0
  26. package/lib/commonjs/partials/w3m-connecting-body/index.js.map +1 -1
  27. package/lib/commonjs/partials/w3m-connecting-mobile/components/StoreLink.js +4 -0
  28. package/lib/commonjs/partials/w3m-connecting-mobile/components/StoreLink.js.map +1 -1
  29. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js +5 -1
  30. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js.map +1 -1
  31. package/lib/commonjs/partials/w3m-header/index.js +1 -0
  32. package/lib/commonjs/partials/w3m-header/index.js.map +1 -1
  33. package/lib/commonjs/partials/w3m-header/styles.js +3 -0
  34. package/lib/commonjs/partials/w3m-header/styles.js.map +1 -1
  35. package/lib/commonjs/partials/w3m-send-input-token/index.js +6 -3
  36. package/lib/commonjs/partials/w3m-send-input-token/index.js.map +1 -1
  37. package/lib/commonjs/partials/w3m-swap-input/index.js +6 -3
  38. package/lib/commonjs/partials/w3m-swap-input/index.js.map +1 -1
  39. package/lib/commonjs/views/w3m-account-default-view/index.js +2 -1
  40. package/lib/commonjs/views/w3m-account-default-view/index.js.map +1 -1
  41. package/lib/commonjs/views/w3m-connecting-external-view/index.js +4 -8
  42. package/lib/commonjs/views/w3m-connecting-external-view/index.js.map +1 -1
  43. package/lib/commonjs/views/w3m-connecting-view/index.js +17 -7
  44. package/lib/commonjs/views/w3m-connecting-view/index.js.map +1 -1
  45. package/lib/commonjs/views/w3m-onramp-settings-view/index.js +2 -0
  46. package/lib/commonjs/views/w3m-onramp-settings-view/index.js.map +1 -1
  47. package/lib/commonjs/views/w3m-onramp-view/index.js +3 -2
  48. package/lib/commonjs/views/w3m-onramp-view/index.js.map +1 -1
  49. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/index.js +2 -1
  50. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/index.js.map +1 -1
  51. package/lib/commonjs/views/w3m-swap-view/index.js +4 -2
  52. package/lib/commonjs/views/w3m-swap-view/index.js.map +1 -1
  53. package/lib/commonjs/views/w3m-wallet-send-view/index.js +2 -1
  54. package/lib/commonjs/views/w3m-wallet-send-view/index.js.map +1 -1
  55. package/lib/module/AppKit.js +20 -6
  56. package/lib/module/AppKit.js.map +1 -1
  57. package/lib/module/hooks/useAccount.js +69 -5
  58. package/lib/module/hooks/useAccount.js.map +1 -1
  59. package/lib/module/hooks/useAppKit.js +43 -10
  60. package/lib/module/hooks/useAppKit.js.map +1 -1
  61. package/lib/module/hooks/useAppKitContext.js +42 -0
  62. package/lib/module/hooks/useAppKitContext.js.map +1 -0
  63. package/lib/module/hooks/useAppKitEvents.js +65 -4
  64. package/lib/module/hooks/useAppKitEvents.js.map +1 -1
  65. package/lib/module/hooks/useAppKitLogs.js +3 -9
  66. package/lib/module/hooks/useAppKitLogs.js.map +1 -1
  67. package/lib/module/hooks/useAppKitState.js +36 -2
  68. package/lib/module/hooks/useAppKitState.js.map +1 -1
  69. package/lib/module/hooks/useAppKitTheme.js +71 -0
  70. package/lib/module/hooks/useAppKitTheme.js.map +1 -0
  71. package/lib/module/hooks/useProvider.js +3 -4
  72. package/lib/module/hooks/useProvider.js.map +1 -1
  73. package/lib/module/hooks/useWalletInfo.js +34 -2
  74. package/lib/module/hooks/useWalletInfo.js.map +1 -1
  75. package/lib/module/index.js +1 -0
  76. package/lib/module/index.js.map +1 -1
  77. package/lib/module/modal/w3m-modal/styles.js +2 -1
  78. package/lib/module/modal/w3m-modal/styles.js.map +1 -1
  79. package/lib/module/partials/w3m-connecting-body/index.js +2 -0
  80. package/lib/module/partials/w3m-connecting-body/index.js.map +1 -1
  81. package/lib/module/partials/w3m-connecting-mobile/components/StoreLink.js +4 -0
  82. package/lib/module/partials/w3m-connecting-mobile/components/StoreLink.js.map +1 -1
  83. package/lib/module/partials/w3m-connecting-qrcode/index.js +5 -1
  84. package/lib/module/partials/w3m-connecting-qrcode/index.js.map +1 -1
  85. package/lib/module/partials/w3m-header/index.js +1 -0
  86. package/lib/module/partials/w3m-header/index.js.map +1 -1
  87. package/lib/module/partials/w3m-header/styles.js +3 -0
  88. package/lib/module/partials/w3m-header/styles.js.map +1 -1
  89. package/lib/module/partials/w3m-send-input-token/index.js +6 -3
  90. package/lib/module/partials/w3m-send-input-token/index.js.map +1 -1
  91. package/lib/module/partials/w3m-swap-input/index.js +6 -3
  92. package/lib/module/partials/w3m-swap-input/index.js.map +1 -1
  93. package/lib/module/views/w3m-account-default-view/index.js +2 -1
  94. package/lib/module/views/w3m-account-default-view/index.js.map +1 -1
  95. package/lib/module/views/w3m-connecting-external-view/index.js +4 -8
  96. package/lib/module/views/w3m-connecting-external-view/index.js.map +1 -1
  97. package/lib/module/views/w3m-connecting-view/index.js +17 -7
  98. package/lib/module/views/w3m-connecting-view/index.js.map +1 -1
  99. package/lib/module/views/w3m-onramp-settings-view/index.js +2 -0
  100. package/lib/module/views/w3m-onramp-settings-view/index.js.map +1 -1
  101. package/lib/module/views/w3m-onramp-view/index.js +3 -2
  102. package/lib/module/views/w3m-onramp-view/index.js.map +1 -1
  103. package/lib/module/views/w3m-swap-view/components/select-token-modal/index.js +2 -1
  104. package/lib/module/views/w3m-swap-view/components/select-token-modal/index.js.map +1 -1
  105. package/lib/module/views/w3m-swap-view/index.js +4 -2
  106. package/lib/module/views/w3m-swap-view/index.js.map +1 -1
  107. package/lib/module/views/w3m-wallet-send-view/index.js +2 -1
  108. package/lib/module/views/w3m-wallet-send-view/index.js.map +1 -1
  109. package/lib/typescript/AppKit.d.ts +9 -2
  110. package/lib/typescript/AppKit.d.ts.map +1 -1
  111. package/lib/typescript/AppKitContext.d.ts +2 -2
  112. package/lib/typescript/AppKitContext.d.ts.map +1 -1
  113. package/lib/typescript/hooks/useAccount.d.ts +57 -33
  114. package/lib/typescript/hooks/useAccount.d.ts.map +1 -1
  115. package/lib/typescript/hooks/useAppKit.d.ts +42 -0
  116. package/lib/typescript/hooks/useAppKit.d.ts.map +1 -1
  117. package/lib/typescript/hooks/useAppKitContext.d.ts +27 -0
  118. package/lib/typescript/hooks/useAppKitContext.d.ts.map +1 -0
  119. package/lib/typescript/hooks/useAppKitEvents.d.ts +66 -0
  120. package/lib/typescript/hooks/useAppKitEvents.d.ts.map +1 -1
  121. package/lib/typescript/hooks/useAppKitLogs.d.ts.map +1 -1
  122. package/lib/typescript/hooks/useAppKitState.d.ts +32 -0
  123. package/lib/typescript/hooks/useAppKitState.d.ts.map +1 -1
  124. package/lib/typescript/hooks/useAppKitTheme.d.ts +59 -0
  125. package/lib/typescript/hooks/useAppKitTheme.d.ts.map +1 -0
  126. package/lib/typescript/hooks/useProvider.d.ts +1 -4
  127. package/lib/typescript/hooks/useProvider.d.ts.map +1 -1
  128. package/lib/typescript/hooks/useWalletInfo.d.ts +31 -0
  129. package/lib/typescript/hooks/useWalletInfo.d.ts.map +1 -1
  130. package/lib/typescript/index.d.ts +2 -1
  131. package/lib/typescript/index.d.ts.map +1 -1
  132. package/lib/typescript/modal/w3m-modal/styles.d.ts +1 -0
  133. package/lib/typescript/modal/w3m-modal/styles.d.ts.map +1 -1
  134. package/lib/typescript/partials/w3m-connecting-body/index.d.ts.map +1 -1
  135. package/lib/typescript/partials/w3m-connecting-qrcode/index.d.ts.map +1 -1
  136. package/lib/typescript/partials/w3m-header/index.d.ts.map +1 -1
  137. package/lib/typescript/partials/w3m-header/styles.d.ts +3 -0
  138. package/lib/typescript/partials/w3m-header/styles.d.ts.map +1 -1
  139. package/lib/typescript/partials/w3m-send-input-token/index.d.ts +2 -1
  140. package/lib/typescript/partials/w3m-send-input-token/index.d.ts.map +1 -1
  141. package/lib/typescript/partials/w3m-swap-input/index.d.ts +2 -1
  142. package/lib/typescript/partials/w3m-swap-input/index.d.ts.map +1 -1
  143. package/lib/typescript/views/w3m-account-default-view/index.d.ts.map +1 -1
  144. package/lib/typescript/views/w3m-connecting-external-view/index.d.ts.map +1 -1
  145. package/lib/typescript/views/w3m-connecting-view/index.d.ts.map +1 -1
  146. package/lib/typescript/views/w3m-onramp-settings-view/index.d.ts.map +1 -1
  147. package/lib/typescript/views/w3m-onramp-view/index.d.ts.map +1 -1
  148. package/lib/typescript/views/w3m-swap-view/index.d.ts.map +1 -1
  149. package/lib/typescript/views/w3m-wallet-send-view/index.d.ts.map +1 -1
  150. package/package.json +5 -4
  151. package/src/AppKit.ts +27 -7
  152. package/src/AppKitContext.tsx +1 -1
  153. package/src/hooks/useAccount.ts +93 -5
  154. package/src/hooks/useAppKit.ts +45 -12
  155. package/src/hooks/useAppKitContext.ts +43 -0
  156. package/src/hooks/useAppKitEvents.ts +63 -3
  157. package/src/hooks/useAppKitLogs.ts +3 -11
  158. package/src/hooks/useAppKitState.ts +35 -2
  159. package/src/hooks/useAppKitTheme.ts +81 -0
  160. package/src/hooks/useProvider.ts +3 -4
  161. package/src/hooks/useWalletInfo.ts +33 -2
  162. package/src/index.ts +2 -1
  163. package/src/modal/w3m-modal/styles.ts +2 -1
  164. package/src/partials/w3m-connecting-body/index.tsx +3 -1
  165. package/src/partials/w3m-connecting-mobile/components/StoreLink.tsx +4 -1
  166. package/src/partials/w3m-connecting-qrcode/index.tsx +10 -1
  167. package/src/partials/w3m-header/index.tsx +6 -1
  168. package/src/partials/w3m-header/styles.ts +3 -0
  169. package/src/partials/w3m-send-input-token/index.tsx +5 -1
  170. package/src/partials/w3m-swap-input/index.tsx +5 -1
  171. package/src/views/w3m-account-default-view/index.tsx +6 -1
  172. package/src/views/w3m-connecting-external-view/index.tsx +4 -8
  173. package/src/views/w3m-connecting-view/index.tsx +24 -8
  174. package/src/views/w3m-onramp-settings-view/index.tsx +7 -1
  175. package/src/views/w3m-onramp-view/index.tsx +3 -2
  176. package/src/views/w3m-swap-view/components/select-token-modal/index.tsx +1 -1
  177. package/src/views/w3m-swap-view/index.tsx +2 -0
  178. package/src/views/w3m-wallet-send-view/index.tsx +1 -0
@@ -1,6 +1,6 @@
1
1
  import { useSnapshot } from 'valtio';
2
2
  import { useEffect, useLayoutEffect, useState } from 'react';
3
- import { type Platform } from '@reown/appkit-common-react-native';
3
+ import { ErrorUtil, type Platform } from '@reown/appkit-common-react-native';
4
4
  import {
5
5
  WcController,
6
6
  ConstantsUtil,
@@ -39,30 +39,46 @@ export function ConnectingView() {
39
39
  }
40
40
  };
41
41
 
42
- const initializeConnection = async (retry = false) => {
42
+ const initializeConnection = async (retry = false, retryTimestamp?: number) => {
43
43
  try {
44
44
  const { wcPairingExpiry } = WcController.state;
45
45
  const { data: routeData } = RouterController.state;
46
- if (retry || CoreHelperUtil.isPairingExpired(wcPairingExpiry)) {
46
+ const isPairingExpired = CoreHelperUtil.isPairingExpired(wcPairingExpiry);
47
+ if (retry || isPairingExpired) {
47
48
  WcController.setWcError(false);
48
49
 
49
50
  const connectPromise = connect({
50
51
  wallet: routeData?.wallet
51
52
  });
52
53
  WcController.setWcPromise(connectPromise);
54
+ await connectPromise;
53
55
  }
54
56
  } catch (error) {
55
57
  LogController.sendError(error, 'ConnectingView.tsx', 'initializeConnection');
56
58
  WcController.setWcError(true);
57
59
  WcController.clearUri();
58
- SnackController.showError('Declined');
59
- if (isQr && CoreHelperUtil.isAllowedRetry(lastRetry)) {
60
- setLastRetry(Date.now());
61
- initializeConnection(true);
60
+
61
+ const currentRetryTime = retryTimestamp ?? lastRetry;
62
+
63
+ if (isQr && CoreHelperUtil.isAllowedRetry(currentRetryTime)) {
64
+ const newRetryTime = Date.now();
65
+ setLastRetry(newRetryTime);
66
+ initializeConnection(true, newRetryTime);
67
+
68
+ return;
62
69
  }
70
+
71
+ const isUserRejected = ErrorUtil.isUserRejectedRequestError(error);
72
+ const isProposalExpired = ErrorUtil.isProposalExpiredError(error);
73
+ if (!isProposalExpired) {
74
+ SnackController.showError(
75
+ isUserRejected ? 'User rejected the request' : 'Something went wrong'
76
+ );
77
+ }
78
+
63
79
  EventsController.sendEvent({
64
80
  type: 'track',
65
- event: 'CONNECT_ERROR',
81
+ event: isUserRejected ? 'USER_REJECTED' : 'CONNECT_ERROR',
66
82
  properties: {
67
83
  message: (error as Error)?.message ?? 'Unknown'
68
84
  }
@@ -90,6 +90,7 @@ export function OnRampSettingsView() {
90
90
  chevron
91
91
  style={styles.firstItem}
92
92
  contentStyle={styles.listItem}
93
+ testID="button-select-country"
93
94
  >
94
95
  <FlexView
95
96
  alignItems="center"
@@ -111,7 +112,12 @@ export function OnRampSettingsView() {
111
112
  ) : null}
112
113
  </FlexView>
113
114
  </ListItem>
114
- <ListItem onPress={onPaymentCurrencyPress} chevron contentStyle={styles.listItem}>
115
+ <ListItem
116
+ onPress={onPaymentCurrencyPress}
117
+ chevron
118
+ contentStyle={styles.listItem}
119
+ testID="button-select-currency"
120
+ >
115
121
  <FlexView
116
122
  alignItems="center"
117
123
  justifyContent="center"
@@ -61,6 +61,7 @@ export function OnRampView() {
61
61
  const purchaseCurrencyCode =
62
62
  purchaseCurrency?.currencyCode?.split('_')[0] ?? purchaseCurrency?.currencyCode;
63
63
  const networkImage = AssetUtil.getNetworkImage(activeNetwork, networkImages);
64
+ const isContinueDisabled = quotesLoading || loading || !selectedQuote;
64
65
 
65
66
  const getQuotes = useCallback(() => {
66
67
  if (OnRampController.canGenerateQuote()) {
@@ -240,8 +241,8 @@ export function OnRampView() {
240
241
  <Button
241
242
  style={styles.continueButton}
242
243
  onPress={handleContinue}
243
- disabled={quotesLoading || loading || !selectedQuote}
244
- testID="button-continue"
244
+ disabled={isContinueDisabled}
245
+ testID={`button-continue${isContinueDisabled ? '-disabled' : '-enabled'}`}
245
246
  >
246
247
  Continue
247
248
  </Button>
@@ -98,7 +98,7 @@ export function SwapSelectTokenModal({ onClose, type, style, visible }: Props) {
98
98
  alignItems="center"
99
99
  padding={['0', 'm', 'm', 'm']}
100
100
  >
101
- <IconLink icon="chevronLeft" size="md" onPress={onClose} />
101
+ <IconLink icon="chevronLeft" size="md" onPress={onClose} testID="button-back" />
102
102
  <Text variant="paragraph-600">Select token</Text>
103
103
  <View style={styles.iconPlaceholder} />
104
104
  </FlexView>
@@ -174,6 +174,7 @@ export function SwapView() {
174
174
  onChange={onSourceTokenChange}
175
175
  onTokenPress={() => setShowModal('sourceToken')}
176
176
  onMaxPress={onSourceMaxPress}
177
+ testID="swap-input-source"
177
178
  />
178
179
  <FlexView alignItems="center" justifyContent="center" style={styles.bottomInputContainer}>
179
180
  <SwapInput
@@ -186,6 +187,7 @@ export function SwapView() {
186
187
  onChange={onToTokenChange}
187
188
  onTokenPress={() => setShowModal('toToken')}
188
189
  editable={false}
190
+ testID="swap-input-to"
189
191
  />
190
192
  {showSwitch ? (
191
193
  <IconLink
@@ -92,6 +92,7 @@ export function WalletSendView() {
92
92
  style={styles.tokenInput}
93
93
  onTokenPress={() => RouterController.push('WalletSendSelectToken')}
94
94
  loading={isBalanceLoading}
95
+ testID="send-input-token"
95
96
  />
96
97
  <FlexView alignItems="center" justifyContent="center" style={styles.addressContainer}>
97
98
  <SendInputAddress value={receiverProfileName || receiverAddress} />