UNPKG

@reown/appkit-siwe-react-native

Version:

#### 🔎 [Examples](https://github.com/reown-com/react-native-examples)

138 lines (137 loc) • 5.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConnectingSiweView = ConnectingSiweView; var _valtio = require("valtio"); var _appkitUiReactNative = require("@reown/appkit-ui-react-native"); var _appkitCoreReactNative = require("@reown/appkit-core-react-native"); var _react = require("react"); var _SIWEController = require("../../../controller/SIWEController"); var _styles = _interopRequireDefault(require("./styles")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function ConnectingSiweView() { const { metadata } = (0, _valtio.useSnapshot)(_appkitCoreReactNative.OptionsController.state); const { connectedWalletImageUrl, pressedWallet } = (0, _valtio.useSnapshot)(_appkitCoreReactNative.ConnectionController.state); const { address, profileImage } = (0, _valtio.useSnapshot)(_appkitCoreReactNative.AccountController.state); const [isSigning, setIsSigning] = (0, _react.useState)(false); const [isDisconnecting, setIsDisconnecting] = (0, _react.useState)(false); const dappName = metadata?.name || 'Dapp'; const dappIcon = metadata?.icons[0] || ''; const walletIcon = _appkitCoreReactNative.AssetUtil.getWalletImage(pressedWallet) || connectedWalletImageUrl; const onSign = async () => { setIsSigning(true); _appkitCoreReactNative.EventsController.sendEvent({ event: 'CLICK_SIGN_SIWE_MESSAGE', type: 'track', properties: { network: _appkitCoreReactNative.NetworkController.state.caipNetwork?.id || '', isSmartAccount: _appkitCoreReactNative.AccountController.state.preferredAccountType === 'smartAccount' } }); try { const session = await _SIWEController.SIWEController.signIn(); _appkitCoreReactNative.EventsController.sendEvent({ event: 'SIWE_AUTH_SUCCESS', type: 'track', properties: { network: _appkitCoreReactNative.NetworkController.state.caipNetwork?.id || '', isSmartAccount: _appkitCoreReactNative.AccountController.state.preferredAccountType === 'smartAccount' } }); return session; } catch (error) { _appkitCoreReactNative.SnackController.showError('Signature declined'); _SIWEController.SIWEController.setStatus('error'); return _appkitCoreReactNative.EventsController.sendEvent({ event: 'SIWE_AUTH_ERROR', type: 'track', properties: { network: _appkitCoreReactNative.NetworkController.state.caipNetwork?.id || '', isSmartAccount: _appkitCoreReactNative.AccountController.state.preferredAccountType === 'smartAccount' } }); } finally { setIsSigning(false); } }; const onCancel = async () => { const { isConnected } = _appkitCoreReactNative.AccountController.state; if (isConnected) { setIsDisconnecting(true); await _appkitCoreReactNative.ConnectionController.disconnect(); _appkitCoreReactNative.ModalController.close(); setIsDisconnecting(false); } else { _appkitCoreReactNative.RouterController.push('Connect'); } _appkitCoreReactNative.EventsController.sendEvent({ event: 'CLICK_CANCEL_SIWE', type: 'track', properties: { network: _appkitCoreReactNative.NetworkController.state.caipNetwork?.id || '', isSmartAccount: _appkitCoreReactNative.AccountController.state.preferredAccountType === 'smartAccount' } }); }; return /*#__PURE__*/React.createElement(_appkitUiReactNative.FlexView, { padding: ['2xl', 's', '3xl', 's'] }, /*#__PURE__*/React.createElement(_appkitUiReactNative.IconLink, { icon: "close", size: "md", onPress: onCancel, testID: "header-close", style: _styles.default.closeButton }), /*#__PURE__*/React.createElement(_appkitUiReactNative.Text, { variant: "paragraph-600", numberOfLines: 1, center: true }, "Sign in"), /*#__PURE__*/React.createElement(_appkitUiReactNative.DoubleImageLoader, { style: _styles.default.logoContainer, leftImage: dappIcon, rightImage: walletIcon, renderRightPlaceholder: () => /*#__PURE__*/React.createElement(_appkitUiReactNative.Avatar, { imageSrc: profileImage, address: address, size: 60, borderWidth: 0 }), rightItemStyle: !walletIcon && _styles.default.walletAvatar }), /*#__PURE__*/React.createElement(_appkitUiReactNative.Text, { center: true, variant: "medium-600", color: "fg-100", style: _styles.default.title }, dappName, " needs to connect to your wallet"), /*#__PURE__*/React.createElement(_appkitUiReactNative.Text, { center: true, variant: "small-400", color: "fg-200", style: _styles.default.subtitle }, "Sign this message to prove you own this wallet and proceed. Cancelling will disconnect you"), /*#__PURE__*/React.createElement(_appkitUiReactNative.FlexView, { flexDirection: "row", justifyContent: "space-between", margin: ['s', '0', '0', '0'] }, /*#__PURE__*/React.createElement(_appkitUiReactNative.Button, { variant: "shade", onPress: onCancel, style: _styles.default.button, loading: isDisconnecting }, "Cancel"), /*#__PURE__*/React.createElement(_appkitUiReactNative.Button, { variant: "fill", loading: isSigning, disabled: isDisconnecting, onPress: onSign, style: _styles.default.button }, "Sign"))); } //# sourceMappingURL=index.js.map