@getpara/react-sdk 1.2.0 → 1.3.1-dev.1

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 (205) hide show
  1. package/dist/cli/cli.mjs +43 -0
  2. package/dist/index.js +6428 -5
  3. package/dist/index.js.br +0 -0
  4. package/dist/index.js.gz +0 -0
  5. package/dist/modal/components/AuthInput/AuthInput.d.ts +1 -1
  6. package/dist/modal/components/AuthInput/hooks/useDropdownPosition.d.ts +4 -4
  7. package/dist/modal/components/ChainSwitch/ChainSwitch.d.ts +1 -1
  8. package/dist/modal/components/Controls/Selects.d.ts +1 -1
  9. package/dist/modal/components/ExternalWalletStep/ExternalWalletStep.d.ts +1 -1
  10. package/dist/modal/components/Footer/Footer.d.ts +1 -1
  11. package/dist/modal/components/WalletCard/WalletCard.d.ts +2 -2
  12. package/dist/modal/components/common.d.ts +2 -2
  13. package/dist/modal/index.d.ts +0 -1
  14. package/dist/modal/stores/index.d.ts +0 -1
  15. package/dist/modal/stores/modal/useModalStore.d.ts +6 -3
  16. package/dist/modal/types/modalProps.d.ts +1 -27
  17. package/dist/modal/utils/authLayoutHelpers.d.ts +2 -2
  18. package/dist/modal/utils/getTileButtonFlex.d.ts +1 -1
  19. package/dist/modal/utils/openPopup.d.ts +1 -1
  20. package/dist/provider/ParaProvider.d.ts +3 -1
  21. package/dist/provider/actions/checkIfUserExists.d.ts +2 -7
  22. package/dist/provider/actions/createUser.d.ts +2 -10
  23. package/dist/provider/actions/getAccount.d.ts +9 -6
  24. package/dist/provider/actions/getWallet.d.ts +1 -1
  25. package/dist/provider/actions/logout.d.ts +4 -1
  26. package/dist/provider/actions/waitForLoginAndSetup.d.ts +1 -1
  27. package/dist/provider/components/CosmosWalletWrapper.d.ts +12 -0
  28. package/dist/provider/components/EvmWalletWrapper.d.ts +12 -0
  29. package/dist/provider/components/ExternalWalletWrapper.d.ts +8 -0
  30. package/dist/provider/components/SolanaWalletWrapper.d.ts +9 -0
  31. package/dist/provider/external/getParaCosmosConnector.d.ts +7 -0
  32. package/dist/provider/external/getParaEvmConnector.d.ts +7 -0
  33. package/dist/provider/external/getParaSolanaConnector.d.ts +7 -0
  34. package/dist/provider/external/stubs/CosmosExternalWalletContextStub.d.ts +10 -0
  35. package/dist/provider/external/stubs/EvmExternalWalletContextStub.d.ts +3 -0
  36. package/dist/provider/external/stubs/SolanaExternalWalletContextStub.d.ts +6 -0
  37. package/dist/provider/hooks/mutations/useLogout.d.ts +3 -2
  38. package/dist/provider/hooks/queries/useAccount.d.ts +4 -3
  39. package/dist/provider/hooks/queries/useWallet.d.ts +1 -1
  40. package/dist/provider/hooks/utils/useClient.d.ts +1 -1
  41. package/dist/provider/hooks/utils/useWalletState.d.ts +2 -2
  42. package/dist/provider/index.d.ts +1 -0
  43. package/dist/provider/providers/CosmosExternalWalletProvider.d.ts +7 -0
  44. package/dist/provider/providers/EvmExternalWalletProvider.d.ts +7 -0
  45. package/dist/{modal/providers/ExternalWalletContext.d.ts → provider/providers/ExternalWalletProvider.d.ts} +20 -29
  46. package/dist/provider/providers/SolanaExternalWalletProvider.d.ts +7 -0
  47. package/dist/provider/stores/getters.d.ts +3 -3
  48. package/dist/provider/stores/setters.d.ts +1 -0
  49. package/dist/provider/stores/slices/config.d.ts +3 -0
  50. package/dist/provider/stores/slices/externalWallets.d.ts +3 -0
  51. package/dist/provider/stores/slices/index.d.ts +1 -0
  52. package/dist/provider/stores/types.d.ts +43 -1
  53. package/dist/provider/types/externalWalletProviders.d.ts +12 -0
  54. package/dist/provider/types/provider.d.ts +115 -16
  55. package/dist/provider/types/utils.d.ts +1 -0
  56. package/dist/provider/utils/paraConfigTypeGuards.d.ts +7 -0
  57. package/package.json +33 -9
  58. package/dist/modal/ParaModal.js +0 -281
  59. package/dist/modal/components/Account/Account.js +0 -60
  60. package/dist/modal/components/AddFunds/AddFunds.js +0 -147
  61. package/dist/modal/components/AddFunds/AddFundsAwaiting.js +0 -65
  62. package/dist/modal/components/AddFunds/AddFundsDone.js +0 -26
  63. package/dist/modal/components/AddFunds/MoonPayEmbed.js +0 -2
  64. package/dist/modal/components/AddFunds/index.js +0 -3
  65. package/dist/modal/components/AuthInput/AuthInput.js +0 -221
  66. package/dist/modal/components/AuthInput/countryCodes.js +0 -40
  67. package/dist/modal/components/AuthInput/hooks/useDropdownPosition.js +0 -23
  68. package/dist/modal/components/AuthInput/phoneMasks.js +0 -247
  69. package/dist/modal/components/AuthMainStep/AuthMainStep.js +0 -21
  70. package/dist/modal/components/AuthMainStep/AuthMainStepContent.js +0 -89
  71. package/dist/modal/components/AuthOptions/AuthOptions.js +0 -28
  72. package/dist/modal/components/AwaitingBiometricsStep/AwaitingBiometricsStep.js +0 -7
  73. package/dist/modal/components/AwaitingOAuthStep/AwaitingOAuthStep.js +0 -5
  74. package/dist/modal/components/AwaitingPasswordStep/AwaitingPasswordStep.js +0 -7
  75. package/dist/modal/components/AwaitingWalletCreationStep/AwaitingWalletCreationStep.js +0 -18
  76. package/dist/modal/components/BiometricCreationStep/BiometricCreationStep.js +0 -17
  77. package/dist/modal/components/BiometricLoginStep/BiometricLoginStep.js +0 -131
  78. package/dist/modal/components/Body/AnimatedHeightWrapper.js +0 -26
  79. package/dist/modal/components/Body/Body.js +0 -232
  80. package/dist/modal/components/ChainSwitch/ChainSwitch.js +0 -77
  81. package/dist/modal/components/ChainSwitch/config.js +0 -11
  82. package/dist/modal/components/Controls/Controls.js +0 -54
  83. package/dist/modal/components/Controls/Selects.js +0 -159
  84. package/dist/modal/components/ExternalWalletStep/ExternalWalletStep.js +0 -116
  85. package/dist/modal/components/ExternalWalletStep/config.js +0 -11
  86. package/dist/modal/components/ExternalWallets/ExternalWallets.js +0 -142
  87. package/dist/modal/components/ExternalWalletsWrapper/ExternalWalletsWrapper.d.ts +0 -7
  88. package/dist/modal/components/ExternalWalletsWrapper/ExternalWalletsWrapper.js +0 -119
  89. package/dist/modal/components/Footer/Footer.js +0 -71
  90. package/dist/modal/components/Header/Header.js +0 -24
  91. package/dist/modal/components/Header/hooks/useStepTitle.js +0 -42
  92. package/dist/modal/components/Hero/Hero.js +0 -119
  93. package/dist/modal/components/IFrameStep/IFrameStep.js +0 -41
  94. package/dist/modal/components/LoginDoneStep/LoginDoneStep.js +0 -19
  95. package/dist/modal/components/ModalContent/ModalContent.js +0 -282
  96. package/dist/modal/components/OAuth/FarcasterOAuthStep.js +0 -81
  97. package/dist/modal/components/OAuth/OAuth.js +0 -125
  98. package/dist/modal/components/OAuth/TelegramOAuthStep.js +0 -133
  99. package/dist/modal/components/OnRampComponents/AddingFunds.js +0 -10
  100. package/dist/modal/components/OnRampComponents/OnRampProviderButton.js +0 -72
  101. package/dist/modal/components/RecoverySecretStep/RecoverySecretStep.js +0 -67
  102. package/dist/modal/components/Setup2FAStep/Setup2FAStep.js +0 -105
  103. package/dist/modal/components/StripeComponents/StripeComponents.js +0 -78
  104. package/dist/modal/components/TwoFactorDoneStep/TwoFactorDoneStep.js +0 -8
  105. package/dist/modal/components/VerificationCodeStep/VerificationCodeStep.js +0 -135
  106. package/dist/modal/components/Waiting/Waiting.js +0 -6
  107. package/dist/modal/components/WalletCard/PartnerIcon.js +0 -29
  108. package/dist/modal/components/WalletCard/WalletCard.js +0 -93
  109. package/dist/modal/components/WalletCreationDoneStep/WalletCreationDoneStep.js +0 -50
  110. package/dist/modal/components/common.js +0 -67
  111. package/dist/modal/components/index.js +0 -1
  112. package/dist/modal/constants/constants.js +0 -93
  113. package/dist/modal/constants/defaults.js +0 -5
  114. package/dist/modal/constants/oAuthLogos.js +0 -18
  115. package/dist/modal/hooks/useActiveWallet.d.ts +0 -1
  116. package/dist/modal/hooks/useActiveWallet.js +0 -11
  117. package/dist/modal/hooks/useEmbeddedExternalConnection.d.ts +0 -1
  118. package/dist/modal/hooks/useEmbeddedExternalConnection.js +0 -46
  119. package/dist/modal/hooks/useGoBack.js +0 -34
  120. package/dist/modal/index.js +0 -9
  121. package/dist/modal/providers/CosmosExternalWalletContextStub.d.ts +0 -29
  122. package/dist/modal/providers/CosmosExternalWalletContextStub.js +0 -18
  123. package/dist/modal/providers/EvmExternalWalletContextStub.d.ts +0 -33
  124. package/dist/modal/providers/EvmExternalWalletContextStub.js +0 -22
  125. package/dist/modal/providers/ExternalWalletContext.js +0 -253
  126. package/dist/modal/providers/SolanaExternalWalletContextStub.d.ts +0 -21
  127. package/dist/modal/providers/SolanaExternalWalletContextStub.js +0 -12
  128. package/dist/modal/stores/externalWalletProvider/actions.d.ts +0 -3
  129. package/dist/modal/stores/externalWalletProvider/actions.js +0 -5
  130. package/dist/modal/stores/externalWalletProvider/useExternalWalletProviderStore.d.ts +0 -20
  131. package/dist/modal/stores/externalWalletProvider/useExternalWalletProviderStore.js +0 -13
  132. package/dist/modal/stores/index.js +0 -3
  133. package/dist/modal/stores/modal/actions.js +0 -64
  134. package/dist/modal/stores/modal/useModalStore.js +0 -41
  135. package/dist/modal/stores/para/actions.d.ts +0 -3
  136. package/dist/modal/stores/para/actions.js +0 -5
  137. package/dist/modal/stores/para/useParaStore.d.ts +0 -10
  138. package/dist/modal/stores/para/useParaStore.js +0 -3
  139. package/dist/modal/stores/theme/actions.d.ts +0 -3
  140. package/dist/modal/stores/theme/actions.js +0 -24
  141. package/dist/modal/stores/theme/useThemeStore.d.ts +0 -20
  142. package/dist/modal/stores/theme/useThemeStore.js +0 -14
  143. package/dist/modal/stores/userInfo/actions.js +0 -34
  144. package/dist/modal/stores/userInfo/useUserInfoStore.js +0 -9
  145. package/dist/modal/types/commonTypes.js +0 -1
  146. package/dist/modal/types/externalWallets.js +0 -21
  147. package/dist/modal/types/modalProps.js +0 -7
  148. package/dist/modal/utils/authLayoutHelpers.js +0 -2
  149. package/dist/modal/utils/getMailtoLink.js +0 -5
  150. package/dist/modal/utils/getTileButtonFlex.js +0 -15
  151. package/dist/modal/utils/isPasskeySupported.js +0 -10
  152. package/dist/modal/utils/openPopup.js +0 -55
  153. package/dist/modal/utils/routeMobileExternalWallet.js +0 -35
  154. package/dist/modal/utils/steps.js +0 -215
  155. package/dist/modal/utils/stringFormatters.js +0 -12
  156. package/dist/modal/utils/validateOnRampConfig.js +0 -26
  157. package/dist/provider/ParaProvider.js +0 -17
  158. package/dist/provider/actions/checkIfUserExists.js +0 -26
  159. package/dist/provider/actions/createUser.js +0 -30
  160. package/dist/provider/actions/getAccount.js +0 -24
  161. package/dist/provider/actions/getWallet.js +0 -16
  162. package/dist/provider/actions/initiateLogin.js +0 -23
  163. package/dist/provider/actions/keepSessionAlive.js +0 -23
  164. package/dist/provider/actions/logout.js +0 -20
  165. package/dist/provider/actions/signMessage.js +0 -23
  166. package/dist/provider/actions/signTransaction.js +0 -23
  167. package/dist/provider/actions/waitForAccountCreation.js +0 -24
  168. package/dist/provider/actions/waitForLoginAndSetup.js +0 -27
  169. package/dist/provider/actions/waitForPasskeyAndCreateWallet.js +0 -24
  170. package/dist/provider/hooks/index.js +0 -3
  171. package/dist/provider/hooks/mutations/index.js +0 -10
  172. package/dist/provider/hooks/mutations/useCheckIfUserExists.js +0 -23
  173. package/dist/provider/hooks/mutations/useCreateUser.js +0 -23
  174. package/dist/provider/hooks/mutations/useInitiateLogin.js +0 -23
  175. package/dist/provider/hooks/mutations/useKeepSessionAlive.js +0 -23
  176. package/dist/provider/hooks/mutations/useLogout.js +0 -33
  177. package/dist/provider/hooks/mutations/useSignMessage.js +0 -33
  178. package/dist/provider/hooks/mutations/useSignTransaction.js +0 -33
  179. package/dist/provider/hooks/mutations/useWaitForAccountCreation.js +0 -30
  180. package/dist/provider/hooks/mutations/useWaitForLoginAndSetup.js +0 -30
  181. package/dist/provider/hooks/mutations/useWaitForPasskeyAndCreateWallet.js +0 -30
  182. package/dist/provider/hooks/queries/index.js +0 -2
  183. package/dist/provider/hooks/queries/useAccount.js +0 -23
  184. package/dist/provider/hooks/queries/useWallet.js +0 -24
  185. package/dist/provider/hooks/utils/index.js +0 -3
  186. package/dist/provider/hooks/utils/useAutoSessionKeepAlive.js +0 -79
  187. package/dist/provider/hooks/utils/useClient.js +0 -8
  188. package/dist/provider/hooks/utils/useEventListeners.js +0 -87
  189. package/dist/provider/hooks/utils/useInternalClient.js +0 -9
  190. package/dist/provider/hooks/utils/useModal.js +0 -15
  191. package/dist/provider/hooks/utils/useWalletState.js +0 -33
  192. package/dist/provider/index.js +0 -3
  193. package/dist/provider/stores/getters.js +0 -5
  194. package/dist/provider/stores/slices/client.js +0 -4
  195. package/dist/provider/stores/slices/index.js +0 -3
  196. package/dist/provider/stores/slices/modal.js +0 -4
  197. package/dist/provider/stores/slices/wallet.js +0 -6
  198. package/dist/provider/stores/types.js +0 -1
  199. package/dist/provider/stores/useStore.js +0 -14
  200. package/dist/provider/types/provider.js +0 -1
  201. package/dist/provider/types/query.js +0 -1
  202. package/dist/provider/types/utils.js +0 -1
  203. package/dist/provider/utils/renameMutations.js +0 -19
  204. /package/dist/{modal/css → css}/modal.css +0 -0
  205. /package/dist/{modal/public → public}/Inter-VariableFont_slnt,wght.ttf +0 -0
@@ -1,9 +1,23 @@
1
+ import { Context } from 'react';
1
2
  import ParaWeb, { WalletType } from '@getpara/web-sdk';
3
+ import { EvmExternalWalletContextType, ParaEvmProvider, WalletList as EvmWalletList } from '@getpara/evm-wallet-connectors';
4
+ import { CosmosExternalWalletContextType, ParaCosmosProvider, WalletList as CosmosWalletList } from '@getpara/cosmos-wallet-connectors';
5
+ import { ParaSolanaProvider, SolanaExternalWalletContextType, WalletList as SolanaWalletList } from '@getpara/solana-wallet-connectors';
6
+ import { ParaModalProps, TExternalWallet } from '../../modal/index.js';
7
+ import { OAuthLogoVariantType } from '../../modal/types/modalProps.js';
2
8
  export interface ClientSlice {
3
9
  client?: ParaWeb;
4
10
  setClient: (_: ParaWeb) => void;
5
11
  }
12
+ export interface ConfigSlice {
13
+ appName: string;
14
+ setAppName: (_: string) => void;
15
+ }
6
16
  export interface ModalSlice {
17
+ modalConfig?: ParaModalProps;
18
+ setModalConfig: (_?: ParaModalProps) => void;
19
+ isDarkTheme: boolean;
20
+ oAuthLogoVariant: OAuthLogoVariantType;
7
21
  isOpen: boolean;
8
22
  setIsOpen: (_: boolean) => void;
9
23
  }
@@ -13,4 +27,32 @@ export interface WalletSlice {
13
27
  setSelectedWallet: (_?: string, __?: WalletType) => void;
14
28
  clearSelectedWallet: () => void;
15
29
  }
16
- export type Store = ClientSlice & ModalSlice & WalletSlice;
30
+ export interface ExternalWalletsSlice {
31
+ externalWallets: TExternalWallet[];
32
+ setExternalWallets: (_: TExternalWallet[]) => void;
33
+ evmContext: Context<EvmExternalWalletContextType>;
34
+ setEvmContext: (_: Context<EvmExternalWalletContextType>) => void;
35
+ EvmProvider?: typeof ParaEvmProvider;
36
+ setEvmProvider: (_: typeof ParaEvmProvider) => void;
37
+ evmWallets: EvmWalletList;
38
+ setEvmWallets: (_: EvmWalletList) => void;
39
+ isLoadingEvmLib: boolean;
40
+ setIsLoadingEvmLib: (_: boolean) => void;
41
+ cosmosContext: Context<CosmosExternalWalletContextType>;
42
+ setCosmosContext: (_: Context<CosmosExternalWalletContextType>) => void;
43
+ CosmosProvider?: typeof ParaCosmosProvider;
44
+ setCosmosProvider: (_: typeof ParaCosmosProvider) => void;
45
+ cosmosWallets: CosmosWalletList;
46
+ setCosmosWallets: (_: CosmosWalletList) => void;
47
+ isLoadingCosmosLib: boolean;
48
+ setIsLoadingCosmosLib: (_: boolean) => void;
49
+ solanaContext: Context<SolanaExternalWalletContextType>;
50
+ setSolanaContext: (_: Context<SolanaExternalWalletContextType>) => void;
51
+ SolanaProvider?: typeof ParaSolanaProvider;
52
+ setSolanaProvider: (_: typeof ParaSolanaProvider) => void;
53
+ solanaWallets: SolanaWalletList;
54
+ setSolanaWallets: (_: SolanaWalletList) => void;
55
+ isLoadingSolanaLib: boolean;
56
+ setIsLoadingSolanaLib: (_: boolean) => void;
57
+ }
58
+ export type Store = ClientSlice & ModalSlice & WalletSlice & ExternalWalletsSlice & ConfigSlice;
@@ -0,0 +1,12 @@
1
+ import { ParaCosmosProviderConfig } from '@getpara/cosmos-wallet-connectors';
2
+ import { TExternalWallet } from '../../modal/index.js';
3
+ import { ParaSolanaProviderConfig } from '@getpara/solana-wallet-connectors';
4
+ import { Chain, Transport } from 'viem';
5
+ import { ParaEvmProviderConfig } from '@getpara/evm-wallet-connectors';
6
+ export type ExternalWalletProviderCommon = {
7
+ isUsing: boolean;
8
+ wallets: TExternalWallet[];
9
+ };
10
+ export type ParaEvmProviderConfigNoWallets<chains extends readonly [Chain, ...Chain[]], transports extends Record<chains[number]['id'], Transport>> = Omit<ParaEvmProviderConfig<chains, transports>, 'wallets'>;
11
+ export type ParaCosmosProviderConfigNoWallets = Omit<ParaCosmosProviderConfig, 'wallets'>;
12
+ export type ParaSolanaProviderConfigNoWallets = Omit<ParaSolanaProviderConfig, 'wallets'>;
@@ -1,5 +1,10 @@
1
+ import { ParaWagmiProviderProps } from '@getpara/evm-wallet-connectors';
1
2
  import ParaWeb, { AccountCreationEvent, AccountSetupEvent, ConstructorOpts, Environment, ExternalWalletChangeEvent, LoginEvent, LogoutEvent, PregenWalletClaimedEvent, SignMessageEvent, SignTransactionEvent, WalletCreatedEvent, WalletsChangeEvent } from '@getpara/web-sdk';
2
3
  import { PropsWithChildren } from 'react';
4
+ import { Chain, Transport } from 'viem';
5
+ import { ParaModalProps, TExternalWallet } from '../../modal/index.js';
6
+ import { ParaGrazProviderProps } from '@getpara/cosmos-wallet-connectors';
7
+ import { ParaCosmosProviderConfigNoWallets, ParaEvmProviderConfigNoWallets, ParaSolanaProviderConfigNoWallets } from './externalWalletProviders.js';
3
8
  export type Callbacks = {
4
9
  onLogout?: (event: LogoutEvent) => void;
5
10
  onLogin?: (event: LoginEvent) => void;
@@ -13,26 +18,120 @@ export type Callbacks = {
13
18
  onPregenWalletClaimed?: (event: PregenWalletClaimedEvent) => void;
14
19
  };
15
20
  export type ParaProviderConfig = {
21
+ /**
22
+ * The name of your app, used throughout the modal and any configured external wallets.
23
+ */
24
+ appName: string;
25
+ /**
26
+ * Disables the automatic session keep alive that's provided by ParaProvider.
27
+ */
16
28
  disableAutoSessionKeepAlive?: boolean;
29
+ /**
30
+ * Disables the ParaModal that's provided by ParaProvider. Use this is you're providing a separate modal in another location in your app.
31
+ */
32
+ disableEmbeddedModal?: boolean;
17
33
  };
18
- interface ParaProviderPropsBase extends PropsWithChildren {
19
- paraClientConfig?: {
34
+ export type ExternalWalletConfig<chains extends readonly [Chain, ...Chain[]], transports extends Record<chains[number]['id'], Transport>> = {
35
+ /**
36
+ * A description of your app, displayed in some external wallets.
37
+ */
38
+ appDescription?: string;
39
+ /**
40
+ * A URL for your app, displayed in some external wallets.
41
+ */
42
+ appUrl?: string;
43
+ /**
44
+ * An icon for your app, displayed in some external wallets.
45
+ */
46
+ appIcon?: string;
47
+ /**
48
+ * Config for the EVM external wallets connector using Wagmi.
49
+ *
50
+ * NOTE: In addition to this config, you MUST also have the `@getpara/evm-wallet-connectors` package installed.
51
+ */
52
+ evmConnector?: {
53
+ /**
54
+ * Config for the Para EVM external wallets connector.
55
+ */
56
+ config: Omit<ParaEvmProviderConfigNoWallets<chains, transports>, 'appName' | 'appDescription' | 'appUrl' | 'appIcon' | 'projectId'>;
57
+ /**
58
+ * Config for the Wagmi provider.
59
+ */
60
+ wagmiProviderProps?: ParaWagmiProviderProps;
61
+ };
62
+ /**
63
+ * Config for the Cosmos external wallets connector using Graz.
64
+ *
65
+ * NOTE: In addition to this config, you MUST also have the `@getpara/cosmos-wallet-connectors` package installed.
66
+ */
67
+ cosmosConnector?: {
68
+ /**
69
+ * Config for the Para Cosmos external wallets connector.
70
+ */
71
+ config: ParaCosmosProviderConfigNoWallets;
72
+ /**
73
+ * Config for the Graz provider.
74
+ */
75
+ grazProviderProps?: ParaGrazProviderProps;
76
+ };
77
+ /**
78
+ * Config for the Solana external wallets connector using @solana/wallet-adapter-react.
79
+ *
80
+ * NOTE: In addition to this config, you MUST also have the `@getpara/solana-wallet-connectors` package installed.
81
+ */
82
+ solanaConnector?: {
83
+ /**
84
+ * Config for the Para Solana external wallets connector.
85
+ */
86
+ config: Omit<ParaSolanaProviderConfigNoWallets, 'appIdentity'> & Pick<Partial<ParaSolanaProviderConfigNoWallets>, 'appIdentity'>;
87
+ };
88
+ /**
89
+ * Config for any connectors that use Wallet Connect.
90
+ */
91
+ walletConnect?: {
92
+ /**
93
+ * Your Wallet Connect project ID.
94
+ */
95
+ projectId: string;
96
+ };
97
+ /**
98
+ * Which external wallets to show and in what order they should be displayed.
99
+ *
100
+ * NOTE: Any wallets that are detected as installed will be sorted first, followed by those that are not detected or not installed.
101
+ */
102
+ wallets: TExternalWallet[];
103
+ };
104
+ export interface ParaProviderProps<chains extends readonly [Chain, ...Chain[]], transports extends Record<chains[number]['id'], Transport>> extends PropsWithChildren {
105
+ /**
106
+ * Arguments to setup a new Para instance, or a Para instance you have already instantiated.
107
+ */
108
+ paraClientConfig: {
109
+ /**
110
+ * Environment for your Para instance.
111
+ */
20
112
  env: Environment;
113
+ /**
114
+ * API key for you Para instance.
115
+ *
116
+ * NOTE: Be sure this key matches the environment.
117
+ */
21
118
  apiKey: string;
22
119
  opts?: ConstructorOpts;
23
- };
120
+ } | ParaWeb;
121
+ /**
122
+ * Configuration used for the Para modal.
123
+ */
124
+ paraModalConfig?: ParaModalProps;
125
+ /**
126
+ * Callbacks fired for events from the Para instance.
127
+ */
24
128
  callbacks?: Callbacks;
25
- config?: ParaProviderConfig;
129
+ /**
130
+ * Config for the ParaProvider.
131
+ */
132
+ config: ParaProviderConfig;
133
+ /**
134
+ * Config for any external wallets.
135
+ */
136
+ externalWalletConfig?: ExternalWalletConfig<chains, transports>;
26
137
  }
27
- export type ParaProviderProps = ({
28
- config: ParaProviderConfig & {
29
- paraClientOverride: ParaWeb;
30
- };
31
- paraClientConfig?: never;
32
- } & ParaProviderPropsBase) | ({
33
- config?: ParaProviderConfig & {
34
- paraClientOverride?: never;
35
- };
36
- paraClientConfig: ParaProviderPropsBase['paraClientConfig'];
37
- } & ParaProviderPropsBase);
38
- export {};
@@ -4,3 +4,4 @@ export type Compute<type> = {
4
4
  /** Strict version of built-in Omit type */
5
5
  export type StrictOmit<type, keys extends keyof type> = Pick<type, Exclude<keyof type, keys>>;
6
6
  export type UnionStrictOmit<type, keys extends keyof type> = type extends any ? StrictOmit<type, keys> : never;
7
+ export type ChangeFields<T, R> = Omit<T, keyof R> & R;
@@ -0,0 +1,7 @@
1
+ import ParaWeb, { ConstructorOpts, Environment } from '@getpara/web-sdk';
2
+ export declare function isConfigType(obj: any): obj is {
3
+ env: Environment;
4
+ apiKey: string;
5
+ opts?: ConstructorOpts;
6
+ };
7
+ export declare function isParaWeb(obj: any): obj is ParaWeb;
package/package.json CHANGED
@@ -1,20 +1,34 @@
1
1
  {
2
2
  "name": "@getpara/react-sdk",
3
- "version": "1.2.0",
3
+ "version": "1.3.1-dev.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "setup-para": "dist/cli/cli.mjs"
9
+ },
7
10
  "exports": {
8
11
  ".": "./dist/index.js",
9
- "./styles.css": "./dist/modal/css/modal.css"
12
+ "./styles.css": "./dist/css/modal.css"
10
13
  },
11
14
  "sideEffects": [
12
15
  "*.css"
13
16
  ],
14
17
  "dependencies": {
15
- "@getpara/react-common": "1.2.0",
16
- "@getpara/react-components": "1.2.0",
17
- "@getpara/web-sdk": "1.2.0",
18
+ "@cosmjs/cosmwasm-stargate": "<=0.31.3",
19
+ "@cosmjs/launchpad": "*",
20
+ "@cosmjs/proto-signing": "<=0.31.3",
21
+ "@cosmjs/stargate": "<=0.31.3",
22
+ "@cosmjs/tendermint-rpc": "<=0.31.3",
23
+ "@getpara/graz": "^0.1.0",
24
+ "@getpara/react-common": "1.3.1",
25
+ "@getpara/react-components": "1.3.1",
26
+ "@getpara/web-sdk": "1.3.1",
27
+ "@solana-mobile/wallet-adapter-mobile": "^2.1.3",
28
+ "@solana/wallet-adapter-base": "^0.9.23",
29
+ "@solana/wallet-adapter-react": "^0.15.35",
30
+ "@solana/wallet-adapter-walletconnect": "^0.1.16",
31
+ "@solana/web3.js": "^1.95.8",
18
32
  "@tanstack/react-query": "^5.0.0",
19
33
  "date-fns": "^3.6.0",
20
34
  "detect-browser": "^5.3.0",
@@ -24,19 +38,29 @@
24
38
  "zustand": "^4.5.2"
25
39
  },
26
40
  "scripts": {
27
- "build": "rm -rf dist && tsc && yarn post-build",
28
41
  "post-build": "./scripts/post-build.sh",
29
- "test": "vitest run --coverage"
42
+ "build": "rm -rf dist && yarn typegen && node ./scripts/build.mjs && yarn post-build",
43
+ "typegen": "tsc --emitDeclarationOnly",
44
+ "test": "vitest run --coverage",
45
+ "cli": "node ./dist/cli/cli.mjs"
30
46
  },
31
47
  "devDependencies": {
48
+ "@getpara/cosmos-wallet-connectors": "^1.3.1",
49
+ "@getpara/evm-wallet-connectors": "^1.3.1",
50
+ "@getpara/solana-wallet-connectors": "^1.3.1",
32
51
  "@testing-library/dom": "^10.1.0",
33
52
  "@testing-library/react": "^16.0.0",
34
53
  "@types/chrome": "^0.0.237",
35
54
  "@types/react": "^18.0.31",
36
55
  "@types/react-dom": "^18.2.7",
37
- "typescript": "^5.4.3"
56
+ "typescript": "^5.4.3",
57
+ "viem": "2.x",
58
+ "wagmi": "2.x"
38
59
  },
39
60
  "peerDependencies": {
61
+ "@getpara/cosmos-wallet-connectors": "^1.3.1",
62
+ "@getpara/evm-wallet-connectors": "^1.3.1",
63
+ "@getpara/solana-wallet-connectors": "^1.3.1",
40
64
  "react": "*",
41
65
  "react-dom": "*"
42
66
  },
@@ -48,5 +72,5 @@
48
72
  "resolutions": {
49
73
  "styled-components": "^6"
50
74
  },
51
- "gitHead": "a9162c59be1456292d46c56787c1d5bf313bf24b"
75
+ "gitHead": "e6e791d4e4f9afd94f2093d6045d686b85e5a682"
52
76
  }
@@ -1,281 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __rest = (this && this.__rest) || function (s, e) {
11
- var t = {};
12
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
- t[p] = s[p];
14
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
- t[p[i]] = s[p[i]];
18
- }
19
- return t;
20
- };
21
- import { jsx as _jsx } from "react/jsx-runtime";
22
- import { CpslAuthModal, defineCustomElements, generateTheme } from '@getpara/react-components';
23
- import { ModalContent } from './components/index.js';
24
- import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';
25
- import { useModalStore, useUserInfoStore, useThemeStore } from './stores/index.js';
26
- import { ModalStep, RESET_TO_ACCOUNT_STEPS, RESET_TO_AUTH_STEPS } from './utils/steps.js';
27
- import { AuthLayout } from './types/modalProps.js';
28
- import { DEFAULTS } from './constants/defaults.js';
29
- import { useGoBack } from './hooks/useGoBack.js';
30
- import { ParaEvent } from '@getpara/web-sdk';
31
- import { ExternalWalletsWrapper } from './components/ExternalWalletsWrapper/ExternalWalletsWrapper.js';
32
- import styled from 'styled-components';
33
- import { useExternalWallets } from './providers/ExternalWalletContext.js';
34
- import { hasEmbeddedAuth, hasExternalWallet } from './utils/authLayoutHelpers.js';
35
- import { useModal, useWalletState } from '../provider/index.js';
36
- import { useStore } from '../provider/stores/useStore.js';
37
- import { useInternalClient } from '../provider/hooks/utils/useInternalClient.js';
38
- defineCustomElements();
39
- export const ParaModal = forwardRef((_a, ref) => {
40
- var { para, isOpen } = _a, rest = __rest(_a, ["para", "isOpen"]);
41
- const [isInitialized, setIsInitialized] = useState(false);
42
- const setClient = useStore(state => state.setClient);
43
- const client = useStore(state => state.client);
44
- const { closeModal, openModal } = useModal();
45
- useEffect(() => {
46
- if (!client) {
47
- setClient(para);
48
- }
49
- setIsInitialized(true);
50
- }, []);
51
- useEffect(() => {
52
- if (!isOpen) {
53
- closeModal();
54
- }
55
- if (isOpen) {
56
- openModal();
57
- }
58
- }, [isOpen]);
59
- if (!isInitialized) {
60
- return null;
61
- }
62
- return _jsx(ParaModalInner, Object.assign({ ref: ref, para: para }, rest));
63
- });
64
- const ParaModalInner = forwardRef((_a, ref) => {
65
- var { theme, appName, logo, disableEmailLogin = false, disablePhoneLogin = false, oAuthMethods, bareModal = false, className, currentStepOverride, externalWallets, authLayout = [AuthLayout.AUTH_FULL, AuthLayout.EXTERNAL_FULL], embeddedModal, onModalStepChange, hideWallets = false, onClose } = _a, rest = __rest(_a, ["theme", "appName", "logo", "disableEmailLogin", "disablePhoneLogin", "oAuthMethods", "bareModal", "className", "currentStepOverride", "externalWallets", "authLayout", "embeddedModal", "onModalStepChange", "hideWallets", "onClose"]);
66
- const modalContentRef = useRef(null);
67
- const updateThemeState = useThemeStore(state => state.updateState);
68
- const setWebAuthURLForLogin = useModalStore(state => state.setWebAuthURLForLogin);
69
- const setWebAuthURLForCreate = useModalStore(state => state.setWebAuthURLForCreate);
70
- const setBiometricLocationHints = useModalStore(state => state.setBiometricLocationHints);
71
- const currentStep = useModalStore(state => state.step);
72
- const setOnModalStepChange = useModalStore(state => state.setOnModalStepChange);
73
- const setStep = useModalStore(state => state.setStep);
74
- const setAuthInfo = useUserInfoStore(state => state.setAuthInfo);
75
- const hasPreviousStep = useModalStore(state => state.hasPreviousStep());
76
- const setFlow = useModalStore(state => state.setFlow);
77
- const setIsFullyLoggedIn = useModalStore(state => state.setIsFullyLoggedIn);
78
- const goBack = useGoBack();
79
- const setAuthLayout = useThemeStore(state => state.setAuthLayout);
80
- const storedAuthLayout = useThemeStore(state => state.authLayout);
81
- const resetModalState = useModalStore(state => state.resetState);
82
- const resetUserInfoState = useUserInfoStore(state => state.resetState);
83
- const setRecoveryShare = useUserInfoStore(state => state.setRecoveryShare);
84
- const { disconnectExternalWallet } = useExternalWallets();
85
- const { isOpen, closeModal } = useModal();
86
- const para = useInternalClient();
87
- const { selectedWallet, setSelectedWallet } = useWalletState();
88
- const [isModalMounted, setIsModalMounted] = useState(false);
89
- const [isInit, setIsInit] = useState(false);
90
- useImperativeHandle(ref, () => {
91
- return {
92
- goBack() {
93
- goBack();
94
- },
95
- canGoBack() {
96
- return hasPreviousStep;
97
- },
98
- currentStep() {
99
- return currentStep;
100
- },
101
- handleModalClose() {
102
- var _a;
103
- (_a = modalContentRef === null || modalContentRef === void 0 ? void 0 : modalContentRef.current) === null || _a === void 0 ? void 0 : _a.handleModalClose();
104
- },
105
- };
106
- }, [hasPreviousStep, currentStep]);
107
- // This will run on mount and on isOpen change but won't cause a rerender unless step or email changes
108
- const initModal = () => __awaiter(void 0, void 0, void 0, function* () {
109
- const isAccount = yield para.isFullyLoggedIn();
110
- if (currentStepOverride) {
111
- setStep(ModalStep[currentStepOverride.toUpperCase()]);
112
- }
113
- else if (isAccount) {
114
- setFlow('account');
115
- setStep(ModalStep.ACCOUNT_MAIN);
116
- setIsFullyLoggedIn(true);
117
- }
118
- else {
119
- if (currentStep !== ModalStep.AUTH_MAIN && currentStep !== ModalStep.SECRET) {
120
- setStep(ModalStep.AUTH_MAIN);
121
- setFlow();
122
- setWebAuthURLForLogin();
123
- setWebAuthURLForCreate();
124
- setBiometricLocationHints();
125
- }
126
- // Disconnect external wallets if the user is not longer logged in
127
- yield disconnectExternalWallet();
128
- setSelectedWallet({ id: undefined, type: undefined });
129
- setIsFullyLoggedIn(false);
130
- }
131
- switch (true) {
132
- case para.isEmail:
133
- setAuthInfo({ email: para.getEmail() });
134
- break;
135
- case para.isPhone:
136
- {
137
- const { phone, countryCode } = para.getPhone();
138
- setAuthInfo({ phone, countryCode: countryCode });
139
- }
140
- break;
141
- case para.isFarcaster:
142
- setAuthInfo({ farcasterUsername: para.getFarcasterUsername() });
143
- break;
144
- case para.isTelegram:
145
- setAuthInfo({ telegramUserId: para.telegramUserId });
146
- if (!isAccount) {
147
- setStep(ModalStep.TELEGRAM_OAUTH);
148
- }
149
- break;
150
- }
151
- setIsInit(true);
152
- });
153
- useEffect(() => {
154
- let _authLayout = authLayout;
155
- // Removing unused auth layouts based on what auth methods are passed in
156
- if (!(externalWallets === null || externalWallets === void 0 ? void 0 : externalWallets.length) && hasExternalWallet(authLayout)) {
157
- _authLayout = _authLayout.filter(l => !l.includes('EXTERNAL'));
158
- }
159
- if (disableEmailLogin && disablePhoneLogin && !(oAuthMethods === null || oAuthMethods === void 0 ? void 0 : oAuthMethods.length) && hasEmbeddedAuth(authLayout)) {
160
- _authLayout = _authLayout.filter(l => !l.includes('AUTH'));
161
- }
162
- if (JSON.stringify(storedAuthLayout) !== JSON.stringify(_authLayout)) {
163
- setAuthLayout(_authLayout);
164
- }
165
- }, [disableEmailLogin, disablePhoneLogin, oAuthMethods, externalWallets, authLayout]);
166
- useEffect(() => {
167
- setOnModalStepChange(onModalStepChange);
168
- }, [onModalStepChange]);
169
- useEffect(() => {
170
- var _a;
171
- updateThemeState({
172
- logo,
173
- appName,
174
- oAuthLogoVariant: (_a = theme === null || theme === void 0 ? void 0 : theme.oAuthLogoVariant) !== null && _a !== void 0 ? _a : 'default',
175
- bareModal,
176
- embeddedModal,
177
- hideWallets,
178
- });
179
- }, [logo, appName, theme === null || theme === void 0 ? void 0 : theme.oAuthLogoVariant, bareModal, embeddedModal, hideWallets]);
180
- useEffect(() => {
181
- if (theme) {
182
- generateTheme(theme);
183
- updateThemeState({ isDark: theme.mode === 'dark', theme: theme });
184
- }
185
- }, [theme]);
186
- // Set Para instance & init on mount
187
- useEffect(() => {
188
- if (para) {
189
- initModal();
190
- if (bareModal) {
191
- setIsModalMounted(true);
192
- }
193
- }
194
- else {
195
- console.error('A Para instance must be provided.');
196
- }
197
- }, []);
198
- // Init modal with proper steps on isOpen change
199
- useEffect(() => {
200
- if (isOpen && para) {
201
- initModal();
202
- }
203
- }, [isOpen]);
204
- const updateActiveWallet = () => {
205
- if (!(selectedWallet === null || selectedWallet === void 0 ? void 0 : selectedWallet.id) || !para.findWallet(selectedWallet === null || selectedWallet === void 0 ? void 0 : selectedWallet.id)) {
206
- const defaultWallet = para.findWallet(undefined, undefined, { forbidPregen: true });
207
- setSelectedWallet({ id: defaultWallet === null || defaultWallet === void 0 ? void 0 : defaultWallet.id, type: defaultWallet === null || defaultWallet === void 0 ? void 0 : defaultWallet.type });
208
- }
209
- };
210
- useEffect(() => {
211
- updateActiveWallet();
212
- }, [para]);
213
- useEffect(() => {
214
- // TODO: remove this redundant listener once we force the use of the ParaProvider
215
- window.addEventListener(ParaEvent.WALLETS_CHANGE_EVENT, updateActiveWallet);
216
- window.addEventListener(ParaEvent.EXTERNAL_WALLET_CHANGE_EVENT, updateActiveWallet);
217
- return () => {
218
- window.removeEventListener(ParaEvent.WALLETS_CHANGE_EVENT, updateActiveWallet);
219
- window.removeEventListener(ParaEvent.EXTERNAL_WALLET_CHANGE_EVENT, updateActiveWallet);
220
- };
221
- }, []);
222
- const handleClose = () => {
223
- closeModal();
224
- onClose === null || onClose === void 0 ? void 0 : onClose();
225
- };
226
- const handleModalEntering = () => {
227
- setIsModalMounted(true);
228
- };
229
- const handleModalExited = () => __awaiter(void 0, void 0, void 0, function* () {
230
- setIsModalMounted(false);
231
- if (RESET_TO_AUTH_STEPS.includes(currentStep)) {
232
- resetModalState();
233
- resetUserInfoState();
234
- setRecoveryShare(null);
235
- }
236
- else if (RESET_TO_ACCOUNT_STEPS.includes(currentStep)) {
237
- setStep(ModalStep.LOGIN_DONE);
238
- }
239
- if (para) {
240
- yield initModal();
241
- para.exitLoops();
242
- }
243
- setIsInit(false);
244
- });
245
- if (!para) {
246
- console.error('A Para instance is required.');
247
- return null;
248
- }
249
- if (!(storedAuthLayout === null || storedAuthLayout === void 0 ? void 0 : storedAuthLayout.length)) {
250
- // Checking props here to verify a valid configuration was passed in.
251
- // Doing this since we auto adjust the auth layouts based on passed in auth method props, if an empty storedAuthLayout was triggered based on invalid props we want to be sure the message reflects that correctly.
252
- const hasExternalWalletError = !(externalWallets === null || externalWallets === void 0 ? void 0 : externalWallets.length) && hasExternalWallet(authLayout);
253
- const hasEmbeddedWalletError = disableEmailLogin && disablePhoneLogin && !(oAuthMethods === null || oAuthMethods === void 0 ? void 0 : oAuthMethods.length) && hasEmbeddedAuth(authLayout);
254
- if (hasExternalWalletError || hasEmbeddedWalletError) {
255
- if (hasExternalWalletError) {
256
- console.error('At least one external wallet must be provided if external wallet auth is enabled.');
257
- }
258
- if (hasEmbeddedWalletError) {
259
- console.error('At least one login method (email, phone or OAuth) must be provided if embedded wallet auth is enabled.');
260
- }
261
- }
262
- else {
263
- console.error('At least one auth layout selection is required.');
264
- }
265
- return null;
266
- }
267
- return (_jsx(ExternalWalletsWrapper, { wallets: externalWallets, children: _jsx(StyledAuthModal, { enterTransitionDuration: DEFAULTS.ANIMATION_DURATION, exitTransitionDuration: DEFAULTS.ANIMATION_DURATION, open: isOpen, onCpslModalExited: handleModalExited, onCpslModalEntering: handleModalEntering, onCpslModalRequestClose: handleClose, noOverlay: bareModal, className: className, "data-testid": "modal", "$embeddedModal": embeddedModal, children: isModalMounted && ((isInit && embeddedModal) || !embeddedModal) && (_jsx(ModalContent, Object.assign({ oAuthMethods: oAuthMethods, disableEmailLogin: disableEmailLogin, disablePhoneLogin: disablePhoneLogin, onClose: handleClose }, rest))) }) }));
268
- });
269
- const StyledAuthModal = styled(CpslAuthModal) `
270
- ${({ $embeddedModal }) => $embeddedModal &&
271
- `
272
- &::part(modal-body-card) {
273
- --card-box-shadow: none;
274
- --card-border-width: 0px;
275
- };
276
-
277
- &::part(modal-footer) {
278
- --card-box-shadow: none;
279
- --card-border-width: 0px;
280
- };`}
281
- `;
@@ -1,60 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
11
- import styled from 'styled-components';
12
- import { InnerStepContainer, StepContainer, StyledCpslTileButton } from '../common.js';
13
- import { CpslButton, CpslIcon, CpslSpinner, CpslText } from '@getpara/react-components';
14
- import { useModalStore, useThemeStore } from '../../stores/index.js';
15
- import { useExternalWallets } from '../../providers/ExternalWalletContext.js';
16
- import { useState } from 'react';
17
- import { ModalStep } from '../../utils/steps.js';
18
- import { useInternalClient } from '../../../provider/hooks/utils/useInternalClient.js';
19
- export const Account = ({ onClose }) => {
20
- const onRampConfig = useModalStore(state => state.onRampConfig);
21
- const setStep = useModalStore(state => state.setStep);
22
- const hideWallets = useThemeStore(state => state.hideWallets);
23
- const { disconnectExternalWallet } = useExternalWallets();
24
- const para = useInternalClient();
25
- const [isDisconnecting, setIsDisconnecting] = useState(false);
26
- const isOnRampLoaded = !!onRampConfig;
27
- const handleBuyClick = () => {
28
- setStep(ModalStep.ADD_FUNDS_BUY);
29
- };
30
- const handleReceiveClick = () => {
31
- setStep(ModalStep.ADD_FUNDS_RECEIVE);
32
- };
33
- const handleSellClick = () => {
34
- setStep(ModalStep.ADD_FUNDS_WITHDRAW);
35
- };
36
- const handleDisconnectClick = () => __awaiter(void 0, void 0, void 0, function* () {
37
- setIsDisconnecting(true);
38
- yield para.logout();
39
- yield disconnectExternalWallet();
40
- onClose();
41
- setIsDisconnecting(false);
42
- });
43
- return (_jsx(StepContainer, { "$wide": true, children: _jsxs(InnerStepContainer, { children: [_jsx(ButtonContainer, { children: isOnRampLoaded ? (_jsxs(_Fragment, { children: [onRampConfig.isBuyEnabled && (_jsx(OptionButton, { icon: "creditCard", onClick: handleBuyClick, children: _jsx(CpslText, { variant: "bodyXS", color: "secondary", weight: "medium", children: "Buy Crypto" }) })), onRampConfig.isReceiveEnabled && (_jsx(OptionButton, { icon: "qrCode02", onClick: handleReceiveClick, children: _jsx(CpslText, { variant: "bodyXS", color: "secondary", weight: "medium", children: "Receive" }) })), onRampConfig.isWithdrawEnabled && (_jsx(OptionButton, { icon: "arrowCircleBrokenDownLeft", onClick: handleSellClick, children: _jsx(CpslText, { variant: "bodyXS", color: "secondary", weight: "medium", children: "Withdraw" }) }))] })) : (_jsx(CpslSpinner, {})) }), _jsx(DisconnectButton, { variant: "destructive", fullWidth: true, onClick: handleDisconnectClick, disabled: isDisconnecting, children: isDisconnecting ? (_jsx(CpslSpinner, { size: 16 })) : (_jsxs(_Fragment, { children: [hideWallets ? 'Logout' : 'Disconnect Wallet', _jsx(CpslIcon, { icon: "logOut", slot: "end" })] })) })] }) }));
44
- };
45
- const ButtonContainer = styled.div `
46
- display: flex;
47
- align-items: center;
48
- justify-content: center;
49
- gap: 8px;
50
- width: 100%;
51
- height: 88px;
52
- `;
53
- const OptionButton = styled(StyledCpslTileButton) `
54
- flex: 1;
55
-
56
- --button-icon-color: var(--cpsl-color-text-primary);
57
- `;
58
- const DisconnectButton = styled(CpslButton) `
59
- --button-border-width: 0px;
60
- `;