thirdweb 5.56.0 → 5.57.0
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.
- package/dist/cjs/contract/verification/index.js +29 -33
- package/dist/cjs/contract/verification/index.js.map +1 -1
- package/dist/cjs/extensions/erc1155/read/getNFTs.js +4 -1
- package/dist/cjs/extensions/erc1155/read/getNFTs.js.map +1 -1
- package/dist/cjs/react/core/utils/walletIcon.js +4 -1
- package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
- package/dist/cjs/react/native/ui/components/WalletImage.js +2 -0
- package/dist/cjs/react/native/ui/components/WalletImage.js.map +1 -1
- package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +21 -1
- package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
- package/dist/cjs/react/native/ui/connect/TokenListScreen.js +2 -1
- package/dist/cjs/react/native/ui/connect/TokenListScreen.js.map +1 -1
- package/dist/cjs/react/native/ui/icons/svgs.js +2 -1
- package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +15 -2
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js +12 -12
- package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/TokenSelector.js +5 -5
- package/dist/cjs/react/web/ui/ConnectWallet/screens/TokenSelector.js.map +1 -1
- package/dist/cjs/react/web/ui/MediaRenderer/MediaRenderer.js +1 -1
- package/dist/cjs/react/web/ui/MediaRenderer/MediaRenderer.js.map +1 -1
- package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletHeader.js +3 -3
- package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletHeader.js.map +1 -1
- package/dist/cjs/react/web/wallets/in-app/InAppWalletConnectUI.js +4 -0
- package/dist/cjs/react/web/wallets/in-app/InAppWalletConnectUI.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +38 -19
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/GuestLogin.js +81 -0
- package/dist/cjs/react/web/wallets/shared/GuestLogin.js.map +1 -0
- package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js +1 -1
- package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/SocialLogin.js +1 -1
- package/dist/cjs/react/web/wallets/shared/SocialLogin.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/locale/de.js +2 -1
- package/dist/cjs/react/web/wallets/shared/locale/de.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/locale/en.js +1 -0
- package/dist/cjs/react/web/wallets/shared/locale/en.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/locale/es.js +2 -1
- package/dist/cjs/react/web/wallets/shared/locale/es.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/locale/fr.js +2 -1
- package/dist/cjs/react/web/wallets/shared/locale/fr.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/locale/ja.js +2 -1
- package/dist/cjs/react/web/wallets/shared/locale/ja.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/locale/kr.js +2 -1
- package/dist/cjs/react/web/wallets/shared/locale/kr.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/locale/tl.js +2 -1
- package/dist/cjs/react/web/wallets/shared/locale/tl.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/locale/vi.js +1 -0
- package/dist/cjs/react/web/wallets/shared/locale/vi.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/oauthSignIn.js +1 -0
- package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -1
- package/dist/cjs/utils/any-evm/deploy-metadata.js +1 -0
- package/dist/cjs/utils/any-evm/deploy-metadata.js.map +1 -1
- package/dist/cjs/utils/encoding/hex.js +1 -3
- package/dist/cjs/utils/encoding/hex.js.map +1 -1
- package/dist/cjs/utils/fetch.js +7 -12
- package/dist/cjs/utils/fetch.js.map +1 -1
- package/dist/cjs/utils/promise/p-limit.js.map +1 -1
- package/dist/cjs/utils/signatures/sign-message.js +2 -4
- package/dist/cjs/utils/signatures/sign-message.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/guest.js +33 -0
- package/dist/cjs/wallets/in-app/core/authentication/guest.js.map +1 -0
- package/dist/cjs/wallets/in-app/core/authentication/types.js +1 -0
- package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/auth/native-auth.js +25 -0
- package/dist/cjs/wallets/in-app/native/auth/native-auth.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js +1 -3
- package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/wallet/sss.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/native-connector.js +32 -0
- package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/in-app.js +13 -1
- package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js +8 -0
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/cjs/wallets/manager/index.js +5 -0
- package/dist/cjs/wallets/manager/index.js.map +1 -1
- package/dist/cjs/wallets/types.js +1 -0
- package/dist/cjs/wallets/types.js.map +1 -1
- package/dist/cjs/wallets/wallet-connect/receiver/request-handlers/switch-chain.js +2 -4
- package/dist/cjs/wallets/wallet-connect/receiver/request-handlers/switch-chain.js.map +1 -1
- package/dist/esm/contract/verification/index.js +29 -33
- package/dist/esm/contract/verification/index.js.map +1 -1
- package/dist/esm/extensions/erc1155/read/getNFTs.js +4 -1
- package/dist/esm/extensions/erc1155/read/getNFTs.js.map +1 -1
- package/dist/esm/react/core/utils/walletIcon.js +3 -0
- package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
- package/dist/esm/react/native/ui/components/WalletImage.js +3 -1
- package/dist/esm/react/native/ui/components/WalletImage.js.map +1 -1
- package/dist/esm/react/native/ui/connect/InAppWalletUI.js +21 -1
- package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
- package/dist/esm/react/native/ui/connect/TokenListScreen.js +2 -1
- package/dist/esm/react/native/ui/connect/TokenListScreen.js.map +1 -1
- package/dist/esm/react/native/ui/icons/svgs.js +1 -0
- package/dist/esm/react/native/ui/icons/svgs.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +15 -2
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js +12 -12
- package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/TokenSelector.js +6 -6
- package/dist/esm/react/web/ui/ConnectWallet/screens/TokenSelector.js.map +1 -1
- package/dist/esm/react/web/ui/MediaRenderer/MediaRenderer.js +1 -1
- package/dist/esm/react/web/ui/MediaRenderer/MediaRenderer.js.map +1 -1
- package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletHeader.js +3 -3
- package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletHeader.js.map +1 -1
- package/dist/esm/react/web/wallets/in-app/InAppWalletConnectUI.js +4 -0
- package/dist/esm/react/web/wallets/in-app/InAppWalletConnectUI.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +38 -19
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/GuestLogin.js +78 -0
- package/dist/esm/react/web/wallets/shared/GuestLogin.js.map +1 -0
- package/dist/esm/react/web/wallets/shared/OTPLoginUI.js +1 -1
- package/dist/esm/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/SocialLogin.js +1 -1
- package/dist/esm/react/web/wallets/shared/SocialLogin.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/locale/de.js +2 -1
- package/dist/esm/react/web/wallets/shared/locale/de.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/locale/en.js +1 -0
- package/dist/esm/react/web/wallets/shared/locale/en.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/locale/es.js +2 -1
- package/dist/esm/react/web/wallets/shared/locale/es.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/locale/fr.js +2 -1
- package/dist/esm/react/web/wallets/shared/locale/fr.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/locale/ja.js +2 -1
- package/dist/esm/react/web/wallets/shared/locale/ja.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/locale/kr.js +2 -1
- package/dist/esm/react/web/wallets/shared/locale/kr.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/locale/tl.js +2 -1
- package/dist/esm/react/web/wallets/shared/locale/tl.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/locale/vi.js +1 -0
- package/dist/esm/react/web/wallets/shared/locale/vi.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/oauthSignIn.js +1 -0
- package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -1
- package/dist/esm/utils/any-evm/deploy-metadata.js +1 -0
- package/dist/esm/utils/any-evm/deploy-metadata.js.map +1 -1
- package/dist/esm/utils/encoding/hex.js +1 -3
- package/dist/esm/utils/encoding/hex.js.map +1 -1
- package/dist/esm/utils/fetch.js +1 -7
- package/dist/esm/utils/fetch.js.map +1 -1
- package/dist/esm/utils/promise/p-limit.js.map +1 -1
- package/dist/esm/utils/signatures/sign-message.js +2 -4
- package/dist/esm/utils/signatures/sign-message.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/in-app/core/authentication/guest.js +30 -0
- package/dist/esm/wallets/in-app/core/authentication/guest.js.map +1 -0
- package/dist/esm/wallets/in-app/core/authentication/types.js +1 -0
- package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/esm/wallets/in-app/native/auth/native-auth.js +24 -0
- package/dist/esm/wallets/in-app/native/auth/native-auth.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js +1 -3
- package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/wallet/sss.js.map +1 -1
- package/dist/esm/wallets/in-app/native/native-connector.js +33 -1
- package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/esm/wallets/in-app/web/in-app.js +13 -1
- package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/web-connector.js +8 -0
- package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/esm/wallets/manager/index.js +5 -0
- package/dist/esm/wallets/manager/index.js.map +1 -1
- package/dist/esm/wallets/types.js +1 -0
- package/dist/esm/wallets/types.js.map +1 -1
- package/dist/esm/wallets/wallet-connect/receiver/request-handlers/switch-chain.js +2 -4
- package/dist/esm/wallets/wallet-connect/receiver/request-handlers/switch-chain.js.map +1 -1
- package/dist/types/contract/verification/index.d.ts.map +1 -1
- package/dist/types/extensions/erc1155/read/getNFTs.d.ts.map +1 -1
- package/dist/types/react/core/utils/storage.d.ts +1 -1
- package/dist/types/react/core/utils/storage.d.ts.map +1 -1
- package/dist/types/react/core/utils/walletIcon.d.ts +2 -1
- package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
- package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/TokenListScreen.d.ts.map +1 -1
- package/dist/types/react/native/ui/icons/svgs.d.ts +1 -0
- package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/TokenSelector.d.ts.map +1 -1
- package/dist/types/react/web/wallets/ecosystem/EcosystemWalletHeader.d.ts.map +1 -1
- package/dist/types/react/web/wallets/in-app/InAppWalletConnectUI.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts +3 -0
- package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/GuestLogin.d.ts +19 -0
- package/dist/types/react/web/wallets/shared/GuestLogin.d.ts.map +1 -0
- package/dist/types/react/web/wallets/shared/OTPLoginUI.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/locale/de.d.ts +1 -0
- package/dist/types/react/web/wallets/shared/locale/de.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/locale/en.d.ts +1 -0
- package/dist/types/react/web/wallets/shared/locale/en.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/locale/es.d.ts +1 -0
- package/dist/types/react/web/wallets/shared/locale/es.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/locale/fr.d.ts +1 -0
- package/dist/types/react/web/wallets/shared/locale/fr.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/locale/ja.d.ts +1 -0
- package/dist/types/react/web/wallets/shared/locale/ja.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/locale/kr.d.ts +1 -0
- package/dist/types/react/web/wallets/shared/locale/kr.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/locale/tl.d.ts +1 -0
- package/dist/types/react/web/wallets/shared/locale/tl.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/locale/types.d.ts +1 -0
- package/dist/types/react/web/wallets/shared/locale/types.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/locale/vi.d.ts +1 -0
- package/dist/types/react/web/wallets/shared/locale/vi.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -1
- package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
- package/dist/types/utils/encoding/hex.d.ts.map +1 -1
- package/dist/types/utils/fetch.d.ts +4 -2
- package/dist/types/utils/fetch.d.ts.map +1 -1
- package/dist/types/utils/promise/p-limit.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/in-app/core/authentication/guest.d.ts +12 -0
- package/dist/types/wallets/in-app/core/authentication/guest.d.ts.map +1 -0
- package/dist/types/wallets/in-app/core/authentication/types.d.ts +8 -4
- package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/types.d.ts +2 -1
- package/dist/types/wallets/in-app/core/wallet/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/auth/native-auth.d.ts +4 -3
- package/dist/types/wallets/in-app/native/auth/native-auth.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/api/fetchers.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/wallet/sss.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/native-connector.d.ts +1 -0
- package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/in-app.d.ts +13 -1
- package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts +3 -3
- package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
- package/dist/types/wallets/manager/index.d.ts.map +1 -1
- package/dist/types/wallets/types.d.ts +2 -1
- package/dist/types/wallets/types.d.ts.map +1 -1
- package/dist/types/wallets/wallet-connect/receiver/request-handlers/switch-chain.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/contract/verification/index.ts +32 -34
- package/src/extensions/erc1155/read/getNFTs.ts +4 -1
- package/src/react/core/utils/walletIcon.ts +5 -0
- package/src/react/native/ui/components/WalletImage.tsx +3 -0
- package/src/react/native/ui/connect/InAppWalletUI.tsx +30 -0
- package/src/react/native/ui/connect/TokenListScreen.tsx +9 -12
- package/src/react/native/ui/icons/svgs.ts +2 -0
- package/src/react/web/ui/ConnectWallet/Details.tsx +15 -2
- package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +36 -38
- package/src/react/web/ui/ConnectWallet/screens/TokenSelector.tsx +34 -36
- package/src/react/web/ui/MediaRenderer/MediaRenderer.tsx +1 -1
- package/src/react/web/wallets/ecosystem/EcosystemWalletHeader.tsx +18 -20
- package/src/react/web/wallets/in-app/InAppWalletConnectUI.tsx +16 -0
- package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +128 -101
- package/src/react/web/wallets/shared/GuestLogin.tsx +159 -0
- package/src/react/web/wallets/shared/OTPLoginUI.tsx +3 -5
- package/src/react/web/wallets/shared/SocialLogin.tsx +1 -1
- package/src/react/web/wallets/shared/locale/de.ts +2 -1
- package/src/react/web/wallets/shared/locale/en.ts +1 -0
- package/src/react/web/wallets/shared/locale/es.ts +2 -1
- package/src/react/web/wallets/shared/locale/fr.ts +2 -1
- package/src/react/web/wallets/shared/locale/ja.ts +2 -1
- package/src/react/web/wallets/shared/locale/kr.ts +2 -1
- package/src/react/web/wallets/shared/locale/tl.ts +2 -1
- package/src/react/web/wallets/shared/locale/types.ts +1 -0
- package/src/react/web/wallets/shared/locale/vi.ts +1 -0
- package/src/react/web/wallets/shared/oauthSignIn.ts +6 -2
- package/src/utils/any-evm/deploy-metadata.ts +1 -0
- package/src/utils/encoding/hex.ts +2 -3
- package/src/utils/fetch.test.ts +94 -0
- package/src/utils/fetch.ts +1 -12
- package/src/utils/promise/p-limit.ts +165 -165
- package/src/utils/signatures/sign-message.ts +3 -3
- package/src/version.ts +1 -1
- package/src/wallets/in-app/core/authentication/guest.ts +37 -0
- package/src/wallets/in-app/core/authentication/types.ts +9 -4
- package/src/wallets/in-app/core/wallet/types.ts +6 -1
- package/src/wallets/in-app/native/auth/native-auth.ts +34 -3
- package/src/wallets/in-app/native/helpers/api/fetchers.ts +1 -2
- package/src/wallets/in-app/native/helpers/wallet/sss.ts +1 -6
- package/src/wallets/in-app/native/native-connector.ts +42 -2
- package/src/wallets/in-app/web/in-app.ts +13 -1
- package/src/wallets/in-app/web/lib/auth/oauth.ts +3 -3
- package/src/wallets/in-app/web/lib/web-connector.ts +8 -0
- package/src/wallets/manager/index.ts +5 -0
- package/src/wallets/types.ts +2 -0
- package/src/wallets/wallet-connect/receiver/request-handlers/switch-chain.ts +2 -3
@@ -124,10 +124,40 @@ export function InAppWalletUI(props: InAppWalletFormUIProps) {
|
|
124
124
|
}}
|
125
125
|
/>
|
126
126
|
) : null}
|
127
|
+
{authOptions.includes("guest") ? <GuestLogin {...props} /> : null}
|
127
128
|
</View>
|
128
129
|
);
|
129
130
|
}
|
130
131
|
|
132
|
+
function GuestLogin(props: InAppWalletFormUIProps) {
|
133
|
+
const { theme, wallet, client, connector } = props;
|
134
|
+
const connectInAppWallet = useCallback(() => {
|
135
|
+
connector({
|
136
|
+
wallet,
|
137
|
+
connectFn: async () => {
|
138
|
+
await wallet.connect({
|
139
|
+
client,
|
140
|
+
strategy: "guest",
|
141
|
+
});
|
142
|
+
await setLastAuthProvider("guest", nativeLocalStorage);
|
143
|
+
return wallet;
|
144
|
+
},
|
145
|
+
authMethod: "guest",
|
146
|
+
});
|
147
|
+
}, [connector, wallet, client]);
|
148
|
+
|
149
|
+
return (
|
150
|
+
<ThemedButtonWithIcon
|
151
|
+
theme={theme}
|
152
|
+
title="Continue as guest"
|
153
|
+
icon={getAuthProviderImage("guest")}
|
154
|
+
onPress={() => {
|
155
|
+
connectInAppWallet();
|
156
|
+
}}
|
157
|
+
/>
|
158
|
+
);
|
159
|
+
}
|
160
|
+
|
131
161
|
function SocialLogin(
|
132
162
|
props: InAppWalletFormUIProps & { auth: InAppWalletSocialAuth },
|
133
163
|
) {
|
@@ -88,18 +88,15 @@ export const TokenRow = (props: {
|
|
88
88
|
<ThemedText theme={theme} type="defaultSemiBold">
|
89
89
|
{tokenName}
|
90
90
|
</ThemedText>
|
91
|
-
{address &&
|
92
|
-
|
93
|
-
{
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
)}
|
101
|
-
</>
|
102
|
-
)}
|
91
|
+
{address &&
|
92
|
+
(balanceQuery.data ? (
|
93
|
+
<ThemedText theme={theme} type="subtext">
|
94
|
+
{formatBalanceOnButton(Number(balanceQuery.data.displayValue))}{" "}
|
95
|
+
{balanceQuery.data?.symbol}
|
96
|
+
</ThemedText>
|
97
|
+
) : (
|
98
|
+
<Skeleton theme={theme} style={{ width: 80, height: 14 }} />
|
99
|
+
))}
|
103
100
|
</View>
|
104
101
|
{props.onTokenSelected && (
|
105
102
|
<>
|
@@ -98,6 +98,8 @@ export const X_ICON = `<svg width="320" height="320" viewBox="0 0 320 320" fill=
|
|
98
98
|
<path d="M177.315 145.335L245.068 67H229.013L170.182 135.017L123.195 67H69L140.055 169.854L69 252H85.0563L147.183 180.172L196.805 252H251L177.311 145.335H177.315ZM155.323 170.76L148.124 160.518L90.8417 79.022H115.503L161.731 144.792L168.93 155.034L229.02 240.525H204.359L155.323 170.764V170.76Z" fill="white"/>
|
99
99
|
</svg>`;
|
100
100
|
|
101
|
+
export const GUEST_ICON = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>`;
|
102
|
+
|
101
103
|
export const WALLET_ICON = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
102
104
|
<path d="M12.6667 4.66667V2.66667C12.6667 2.48986 12.5964 2.32029 12.4714 2.19526C12.3464 2.07024 12.1768 2 12 2H3.33333C2.97971 2 2.64057 2.14048 2.39052 2.39052C2.14048 2.64057 2 2.97971 2 3.33333C2 3.68696 2.14048 4.02609 2.39052 4.27614C2.64057 4.52619 2.97971 4.66667 3.33333 4.66667H13.3333C13.5101 4.66667 13.6797 4.7369 13.8047 4.86193C13.9298 4.98695 14 5.15652 14 5.33333V8M14 8H12C11.6464 8 11.3072 8.14048 11.0572 8.39052C10.8071 8.64057 10.6667 8.97971 10.6667 9.33333C10.6667 9.68696 10.8071 10.0261 11.0572 10.2761C11.3072 10.5262 11.6464 10.6667 12 10.6667H14C14.1768 10.6667 14.3464 10.5964 14.4714 10.4714C14.5964 10.3464 14.6667 10.1768 14.6667 10V8.66667C14.6667 8.48986 14.5964 8.32029 14.4714 8.19526C14.3464 8.07024 14.1768 8 14 8Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
103
105
|
<path d="M2 3.3335V12.6668C2 13.0205 2.14048 13.3596 2.39052 13.6096C2.64057 13.8597 2.97971 14.0002 3.33333 14.0002H13.3333C13.5101 14.0002 13.6797 13.9299 13.8047 13.8049C13.9298 13.6799 14 13.5103 14 13.3335V10.6668" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
|
@@ -14,8 +14,10 @@ import { trackPayEvent } from "../../../../analytics/track.js";
|
|
14
14
|
import type { Chain } from "../../../../chains/types.js";
|
15
15
|
import type { ThirdwebClient } from "../../../../client/client.js";
|
16
16
|
import { getContract } from "../../../../contract/contract.js";
|
17
|
+
import { getLastAuthProvider } from "../../../../react/core/utils/storage.js";
|
17
18
|
import { isContractDeployed } from "../../../../utils/bytecode/is-contract-deployed.js";
|
18
19
|
import { formatNumber } from "../../../../utils/formatNumber.js";
|
20
|
+
import { webLocalStorage } from "../../../../utils/storage/webStorage.js";
|
19
21
|
import type { Account, Wallet } from "../../../../wallets/interfaces/wallet.js";
|
20
22
|
import type { SmartWalletOptions } from "../../../../wallets/smart/types.js";
|
21
23
|
import type { AppMetadata } from "../../../../wallets/types.js";
|
@@ -1062,6 +1064,17 @@ function InAppWalletUserInfo(props: {
|
|
1062
1064
|
const activeWallet = useActiveWallet();
|
1063
1065
|
const { data: walletInfo } = useWalletInfo(activeWallet?.id);
|
1064
1066
|
const isSmartWallet = hasSmartAccount(activeWallet);
|
1067
|
+
const { data: walletName } = useQuery({
|
1068
|
+
queryKey: [activeWallet?.id, "wallet-name"],
|
1069
|
+
queryFn: async () => {
|
1070
|
+
const lastAuthProvider = await getLastAuthProvider(webLocalStorage);
|
1071
|
+
if (lastAuthProvider === "guest") {
|
1072
|
+
return "Guest";
|
1073
|
+
}
|
1074
|
+
return walletInfo?.name;
|
1075
|
+
},
|
1076
|
+
enabled: !!activeWallet?.id,
|
1077
|
+
});
|
1065
1078
|
|
1066
1079
|
const userInfoQuery = useQuery({
|
1067
1080
|
queryKey: ["in-app-wallet-user", client, account?.address],
|
@@ -1088,10 +1101,10 @@ function InAppWalletUserInfo(props: {
|
|
1088
1101
|
return <ConnectedToSmartWallet client={client} connectLocale={locale} />;
|
1089
1102
|
}
|
1090
1103
|
|
1091
|
-
if (userInfoQuery.data ||
|
1104
|
+
if (userInfoQuery.data || walletName) {
|
1092
1105
|
return (
|
1093
1106
|
<Text size="xs" weight={400}>
|
1094
|
-
{userInfoQuery.data ||
|
1107
|
+
{userInfoQuery.data || walletName}
|
1095
1108
|
</Text>
|
1096
1109
|
);
|
1097
1110
|
}
|
@@ -259,45 +259,43 @@ function HeadlessSignIn({
|
|
259
259
|
{status === "signing" && <Spinner size="xl" color="accentText" />}
|
260
260
|
|
261
261
|
{status === "failed" && (
|
262
|
-
|
263
|
-
<
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
</Text>
|
262
|
+
<Container>
|
263
|
+
<Spacer y="lg" />
|
264
|
+
<Text size="lg" center color="danger">
|
265
|
+
{locale.signingScreen.failedToSignIn}
|
266
|
+
</Text>
|
268
267
|
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
</>
|
268
|
+
<Spacer y="lg" />
|
269
|
+
<Button
|
270
|
+
fullWidth
|
271
|
+
variant="accent"
|
272
|
+
onClick={() => {
|
273
|
+
signIn();
|
274
|
+
}}
|
275
|
+
style={{
|
276
|
+
gap: spacing.xs,
|
277
|
+
alignItems: "center",
|
278
|
+
padding: spacing.md,
|
279
|
+
}}
|
280
|
+
>
|
281
|
+
<ReloadIcon width={iconSize.sm} height={iconSize.sm} />
|
282
|
+
{locale.signingScreen.tryAgain}
|
283
|
+
</Button>
|
284
|
+
<Spacer y="sm" />
|
285
|
+
<Button
|
286
|
+
fullWidth
|
287
|
+
variant="secondary"
|
288
|
+
onClick={() => {
|
289
|
+
disconnect(wallet);
|
290
|
+
}}
|
291
|
+
style={{
|
292
|
+
alignItems: "center",
|
293
|
+
padding: spacing.md,
|
294
|
+
}}
|
295
|
+
>
|
296
|
+
{locale.instructionScreen.disconnectWallet}
|
297
|
+
</Button>
|
298
|
+
</Container>
|
301
299
|
)}
|
302
300
|
</Container>
|
303
301
|
</Container>
|
@@ -154,43 +154,41 @@ export function TokenSelector(props: {
|
|
154
154
|
<Spacer y="md" />
|
155
155
|
|
156
156
|
{props.chainSelection && (
|
157
|
-
|
158
|
-
<
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
/>
|
157
|
+
<Container px="lg">
|
158
|
+
<Text size="sm">Select Network</Text>
|
159
|
+
<Spacer y="xxs" />
|
160
|
+
<SelectTokenBtn
|
161
|
+
fullWidth
|
162
|
+
variant="secondary"
|
163
|
+
onClick={() => {
|
164
|
+
setScreen("select-chain");
|
165
|
+
}}
|
166
|
+
>
|
167
|
+
<ChainIcon
|
168
|
+
chainIconUrl={chainIconQuery.url}
|
169
|
+
size={iconSize.lg}
|
170
|
+
client={props.client}
|
171
|
+
/>
|
173
172
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
</>
|
173
|
+
{chainNameQuery.name ? (
|
174
|
+
<Text color="primaryText" size="sm">
|
175
|
+
{chainNameQuery.name}
|
176
|
+
</Text>
|
177
|
+
) : (
|
178
|
+
<Skeleton height={fontSize.md} />
|
179
|
+
)}
|
180
|
+
|
181
|
+
<ChevronDownIcon
|
182
|
+
width={iconSize.sm}
|
183
|
+
height={iconSize.sm}
|
184
|
+
style={{
|
185
|
+
marginLeft: "auto",
|
186
|
+
}}
|
187
|
+
/>
|
188
|
+
</SelectTokenBtn>
|
189
|
+
<Spacer y="xl" />
|
190
|
+
<Text size="sm">Select Token</Text>
|
191
|
+
</Container>
|
194
192
|
)}
|
195
193
|
|
196
194
|
<Container px="lg">
|
@@ -549,7 +549,7 @@ const IframePlayer = /* @__PURE__ */ (() =>
|
|
549
549
|
<div style={{ position: "relative", ...style }} {...restProps}>
|
550
550
|
<iframe
|
551
551
|
title={alt || "thirdweb iframe player"}
|
552
|
-
src={playing ? src ?? undefined : undefined}
|
552
|
+
src={playing ? (src ?? undefined) : undefined}
|
553
553
|
ref={ref}
|
554
554
|
style={{
|
555
555
|
objectFit: "contain",
|
@@ -23,26 +23,24 @@ export function EcosystemWalletHeader(props: {
|
|
23
23
|
<ModalHeader
|
24
24
|
onBack={props.onBack}
|
25
25
|
title={
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
)}
|
45
|
-
</>
|
26
|
+
walletInfo.isLoading ? (
|
27
|
+
<Skeleton height="24px" width="200px" />
|
28
|
+
) : (
|
29
|
+
<>
|
30
|
+
{!walletInfo.data?.image_id ? null : (
|
31
|
+
<Img
|
32
|
+
src={walletInfo.data?.image_id}
|
33
|
+
style={{
|
34
|
+
borderRadius: radius.sm,
|
35
|
+
}}
|
36
|
+
width={iconSize.md}
|
37
|
+
height={iconSize.md}
|
38
|
+
client={props.client}
|
39
|
+
/>
|
40
|
+
)}
|
41
|
+
<ModalTitle>{walletInfo.data?.name}</ModalTitle>
|
42
|
+
</>
|
43
|
+
)
|
46
44
|
}
|
47
45
|
leftAligned
|
48
46
|
/>
|
@@ -9,6 +9,7 @@ import {
|
|
9
9
|
import { useScreenContext } from "../../ui/ConnectWallet/Modal/screen.js";
|
10
10
|
import type { ConnectLocale } from "../../ui/ConnectWallet/locale/types.js";
|
11
11
|
import type { ConnectWalletSelectUIState } from "../shared/ConnectWalletSocialOptions.js";
|
12
|
+
import { GuestLogin } from "../shared/GuestLogin.js";
|
12
13
|
import { LoadingScreen } from "../shared/LoadingScreen.js";
|
13
14
|
import { OTPLoginUI } from "../shared/OTPLoginUI.js";
|
14
15
|
import { PassKeyLogin } from "../shared/PassKeyLogin.js";
|
@@ -135,6 +136,21 @@ function InAppWalletConnectUI(props: {
|
|
135
136
|
);
|
136
137
|
}
|
137
138
|
|
139
|
+
if (state?.guestLogin) {
|
140
|
+
return (
|
141
|
+
<GuestLogin
|
142
|
+
locale={locale}
|
143
|
+
done={done}
|
144
|
+
goBack={goBackToMain}
|
145
|
+
wallet={props.wallet}
|
146
|
+
state={state}
|
147
|
+
client={props.client}
|
148
|
+
size={props.size}
|
149
|
+
connectLocale={props.connectLocale}
|
150
|
+
/>
|
151
|
+
);
|
152
|
+
}
|
153
|
+
|
138
154
|
return (
|
139
155
|
<InAppWalletFormUIScreen
|
140
156
|
select={() => {}}
|
@@ -53,6 +53,9 @@ export type ConnectWalletSelectUIState =
|
|
53
53
|
type: SocialAuthOption;
|
54
54
|
connectionPromise: Promise<Account | Profile[]>;
|
55
55
|
};
|
56
|
+
guestLogin?: {
|
57
|
+
connectionPromise: Promise<Account | Profile[]>;
|
58
|
+
};
|
56
59
|
passkeyLogin?: boolean;
|
57
60
|
walletLogin?: boolean;
|
58
61
|
};
|
@@ -124,8 +127,8 @@ export const ConnectWalletSocialOptions = (
|
|
124
127
|
retry: false,
|
125
128
|
});
|
126
129
|
const authOptions = isEcosystemWallet(wallet)
|
127
|
-
? ecosystemAuthOptions ?? defaultAuthOptions
|
128
|
-
: wallet.getConfig()?.auth?.options ?? defaultAuthOptions;
|
130
|
+
? (ecosystemAuthOptions ?? defaultAuthOptions)
|
131
|
+
: (wallet.getConfig()?.auth?.options ?? defaultAuthOptions);
|
129
132
|
|
130
133
|
const emailIndex = authOptions.indexOf("email");
|
131
134
|
const isEmailEnabled = emailIndex !== -1;
|
@@ -157,6 +160,7 @@ export const ConnectWalletSocialOptions = (
|
|
157
160
|
}
|
158
161
|
|
159
162
|
const passKeyEnabled = authOptions.includes("passkey");
|
163
|
+
const guestEnabled = authOptions.includes("guest");
|
160
164
|
|
161
165
|
const placeholder =
|
162
166
|
inputMode === "email" ? locale.emailPlaceholder : locale.phonePlaceholder;
|
@@ -182,6 +186,27 @@ export const ConnectWalletSocialOptions = (
|
|
182
186
|
}
|
183
187
|
: undefined;
|
184
188
|
|
189
|
+
const handleGuestLogin = async () => {
|
190
|
+
const connectOptions = {
|
191
|
+
client: props.client,
|
192
|
+
ecosystem: ecosystemInfo,
|
193
|
+
strategy: "guest" as const,
|
194
|
+
};
|
195
|
+
const connectPromise = (async () => {
|
196
|
+
const result = await wallet.connect(connectOptions);
|
197
|
+
setLastAuthProvider("guest", webLocalStorage);
|
198
|
+
return result;
|
199
|
+
})();
|
200
|
+
|
201
|
+
setData({
|
202
|
+
guestLogin: {
|
203
|
+
connectionPromise: connectPromise,
|
204
|
+
},
|
205
|
+
});
|
206
|
+
|
207
|
+
props.select(); // show Connect UI
|
208
|
+
};
|
209
|
+
|
185
210
|
// Need to trigger login on button click to avoid popup from being blocked
|
186
211
|
const handleSocialLogin = async (strategy: SocialAuthOption) => {
|
187
212
|
const walletConfig = wallet.getConfig();
|
@@ -227,11 +252,11 @@ export const ConnectWalletSocialOptions = (
|
|
227
252
|
throw new Error("Only in-app wallets support multi-auth");
|
228
253
|
}
|
229
254
|
return linkProfile(wallet, connectOptions);
|
230
|
-
} else {
|
231
|
-
const connectPromise = wallet.connect(connectOptions);
|
232
|
-
setLastAuthProvider(strategy, webLocalStorage);
|
233
|
-
return connectPromise;
|
234
255
|
}
|
256
|
+
|
257
|
+
const connectPromise = wallet.connect(connectOptions);
|
258
|
+
setLastAuthProvider(strategy, webLocalStorage);
|
259
|
+
return connectPromise;
|
235
260
|
})();
|
236
261
|
|
237
262
|
setData({
|
@@ -303,12 +328,11 @@ export const ConnectWalletSocialOptions = (
|
|
303
328
|
const imgIconSize = (() => {
|
304
329
|
if (!showOnlyIcons) {
|
305
330
|
return iconSize.md;
|
306
|
-
} else {
|
307
|
-
if (socialLogins.length > 4) {
|
308
|
-
return iconSize.md;
|
309
|
-
}
|
310
|
-
return iconSize.lg;
|
311
331
|
}
|
332
|
+
if (socialLogins.length > 4) {
|
333
|
+
return iconSize.md;
|
334
|
+
}
|
335
|
+
return iconSize.lg;
|
312
336
|
})();
|
313
337
|
|
314
338
|
return (
|
@@ -341,108 +365,111 @@ export const ConnectWalletSocialOptions = (
|
|
341
365
|
(isEmailEnabled || isPhoneEnabled) && <TextDivider text={locale.or} />}
|
342
366
|
|
343
367
|
{/* Email/Phone Login */}
|
344
|
-
{isEmailEnabled &&
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
) : (
|
367
|
-
<WalletTypeRowButton
|
368
|
-
client={props.client}
|
369
|
-
icon={emailIcon}
|
370
|
-
onClick={() => {
|
371
|
-
setManualInputMode("email");
|
372
|
-
}}
|
373
|
-
title={locale.emailPlaceholder}
|
374
|
-
disabled={props.disabled}
|
375
|
-
/>
|
376
|
-
)}
|
377
|
-
</>
|
378
|
-
)}
|
379
|
-
{isPhoneEnabled && (
|
380
|
-
<>
|
381
|
-
{inputMode === "phone" ? (
|
382
|
-
<InputSelectionUI
|
383
|
-
format="phone"
|
384
|
-
type={type}
|
385
|
-
onSelect={(value) => {
|
386
|
-
// removes white spaces and special characters
|
387
|
-
setData({ phoneLogin: value.replace(/[-\(\) ]/g, "") });
|
388
|
-
props.select();
|
389
|
-
}}
|
390
|
-
placeholder={placeholder}
|
391
|
-
name="phone"
|
392
|
-
errorMessage={(_input) => {
|
393
|
-
// removes white spaces and special characters
|
394
|
-
const input = _input.replace(/[-\(\) ]/g, "");
|
395
|
-
const isPhone = /^[0-9]+$/.test(input);
|
396
|
-
|
397
|
-
if (!isPhone && isPhoneEnabled) {
|
398
|
-
return locale.invalidPhone;
|
399
|
-
}
|
400
|
-
|
401
|
-
return undefined;
|
402
|
-
}}
|
403
|
-
disabled={props.disabled}
|
404
|
-
emptyErrorMessage={emptyErrorMessage}
|
405
|
-
submitButtonText={locale.submitEmail}
|
406
|
-
/>
|
407
|
-
) : (
|
408
|
-
<WalletTypeRowButton
|
409
|
-
client={props.client}
|
410
|
-
icon={phoneIcon}
|
411
|
-
onClick={() => {
|
412
|
-
setManualInputMode("phone");
|
413
|
-
}}
|
414
|
-
title={locale.phonePlaceholder}
|
415
|
-
disabled={props.disabled}
|
416
|
-
/>
|
417
|
-
)}
|
418
|
-
</>
|
419
|
-
)}
|
420
|
-
|
421
|
-
{passKeyEnabled && (
|
422
|
-
<>
|
368
|
+
{isEmailEnabled &&
|
369
|
+
(inputMode === "email" ? (
|
370
|
+
<InputSelectionUI
|
371
|
+
type={type}
|
372
|
+
onSelect={(value) => {
|
373
|
+
setData({ emailLogin: value });
|
374
|
+
props.select();
|
375
|
+
}}
|
376
|
+
placeholder={placeholder}
|
377
|
+
name="email"
|
378
|
+
errorMessage={(input) => {
|
379
|
+
const isValidEmail = validateEmail(input.toLowerCase());
|
380
|
+
if (!isValidEmail) {
|
381
|
+
return locale.invalidEmail;
|
382
|
+
}
|
383
|
+
return undefined;
|
384
|
+
}}
|
385
|
+
disabled={props.disabled}
|
386
|
+
emptyErrorMessage={emptyErrorMessage}
|
387
|
+
submitButtonText={locale.submitEmail}
|
388
|
+
/>
|
389
|
+
) : (
|
423
390
|
<WalletTypeRowButton
|
424
391
|
client={props.client}
|
425
|
-
icon={
|
392
|
+
icon={emailIcon}
|
426
393
|
onClick={() => {
|
427
|
-
|
394
|
+
setManualInputMode("email");
|
428
395
|
}}
|
429
|
-
title={locale.
|
396
|
+
title={locale.emailPlaceholder}
|
430
397
|
disabled={props.disabled}
|
431
398
|
/>
|
432
|
-
|
433
|
-
|
399
|
+
))}
|
400
|
+
{isPhoneEnabled &&
|
401
|
+
(inputMode === "phone" ? (
|
402
|
+
<InputSelectionUI
|
403
|
+
format="phone"
|
404
|
+
type={type}
|
405
|
+
onSelect={(value) => {
|
406
|
+
// removes white spaces and special characters
|
407
|
+
setData({ phoneLogin: value.replace(/[-\(\) ]/g, "") });
|
408
|
+
props.select();
|
409
|
+
}}
|
410
|
+
placeholder={placeholder}
|
411
|
+
name="phone"
|
412
|
+
errorMessage={(_input) => {
|
413
|
+
// removes white spaces and special characters
|
414
|
+
const input = _input.replace(/[-\(\) ]/g, "");
|
415
|
+
const isPhone = /^[0-9]+$/.test(input);
|
416
|
+
|
417
|
+
if (!isPhone && isPhoneEnabled) {
|
418
|
+
return locale.invalidPhone;
|
419
|
+
}
|
434
420
|
|
435
|
-
|
436
|
-
|
421
|
+
return undefined;
|
422
|
+
}}
|
423
|
+
disabled={props.disabled}
|
424
|
+
emptyErrorMessage={emptyErrorMessage}
|
425
|
+
submitButtonText={locale.submitEmail}
|
426
|
+
/>
|
427
|
+
) : (
|
437
428
|
<WalletTypeRowButton
|
438
429
|
client={props.client}
|
439
|
-
icon={
|
430
|
+
icon={phoneIcon}
|
440
431
|
onClick={() => {
|
441
|
-
|
432
|
+
setManualInputMode("phone");
|
442
433
|
}}
|
443
|
-
title={locale.
|
434
|
+
title={locale.phonePlaceholder}
|
435
|
+
disabled={props.disabled}
|
444
436
|
/>
|
445
|
-
|
437
|
+
))}
|
438
|
+
|
439
|
+
{passKeyEnabled && (
|
440
|
+
<WalletTypeRowButton
|
441
|
+
client={props.client}
|
442
|
+
icon={passkeyIcon}
|
443
|
+
onClick={() => {
|
444
|
+
handlePassKeyLogin();
|
445
|
+
}}
|
446
|
+
title={locale.passkey}
|
447
|
+
disabled={props.disabled}
|
448
|
+
/>
|
449
|
+
)}
|
450
|
+
|
451
|
+
{/* Guest login */}
|
452
|
+
{guestEnabled && (
|
453
|
+
<WalletTypeRowButton
|
454
|
+
client={props.client}
|
455
|
+
icon={getWalletIcon("guest")}
|
456
|
+
onClick={() => {
|
457
|
+
handleGuestLogin();
|
458
|
+
}}
|
459
|
+
title={locale.loginAsGuest}
|
460
|
+
disabled={props.disabled}
|
461
|
+
/>
|
462
|
+
)}
|
463
|
+
|
464
|
+
{props.isLinking && (
|
465
|
+
<WalletTypeRowButton
|
466
|
+
client={props.client}
|
467
|
+
icon={getWalletIcon("")}
|
468
|
+
onClick={() => {
|
469
|
+
handleWalletLogin();
|
470
|
+
}}
|
471
|
+
title={locale.linkWallet}
|
472
|
+
/>
|
446
473
|
)}
|
447
474
|
</Container>
|
448
475
|
);
|