@@ -1,6 +1,6 @@
11import React, { useCallback, useState } from 'react';
22import cn from 'classnames';
3−import { Grid } from 'indigo-react';
3+import { Flex, Grid } from 'indigo-react';
44import {
55 Box,
66 Button,
@@ -9,6 +9,7 @@ import {
99 Row,
1010 Text,
1111 Image,
12+ Checkbox,
1213} from '@tlon/indigo-react';
1314import Web3 from 'web3';
1415import { Just } from 'folktale/maybe';
@@ -57,12 +58,21 @@ export default function LoginSelector({
5758 useLoginView(WALLET_TYPES.WALLET_CONNECT);
5859
5960 const { push, names }: any = useHistory();
60− const { setWallet, setWalletType, setAuthToken }: any = useWallet();
61+ const {
62+ setWallet,
63+ setWalletType,
64+ setAuthToken,
65+ setFakeToken,
66+ skipLoginSigning,
67+ setSkipLoginSigning,
68+ }: any = useWallet();
6169 const { setMetamask }: any = useNetwork();
6270 const [showModal, setShowModal] = useState(false);
6371 // TODO: do we still need this? currently not being set
6472 const [metamaskSelected, setMetamaskSelected] = useState(false);
6573
74+ const [showAdvanced, setShowAdvanced] = useState(false);
75+
6676 const {
6777 address,
6878 authenticate,
@@ -96,6 +106,15 @@ export default function LoginSelector({
96106
97107 const wallet = new MetamaskWallet(accounts[0]);
98108 const web3 = new Web3(window.ethereum);
109+ setWallet(Just(wallet));
110+ setWalletType(WALLET_TYPES.METAMASK);
111+
112+ if (skipLoginSigning) {
113+ setFakeToken();
114+ goHome();
115+ return;
116+ }
117+
99118 const authToken = await getAuthToken({
100119 address: wallet.address,
101120 walletType: WALLET_TYPES.METAMASK,
@@ -103,8 +122,6 @@ export default function LoginSelector({
103122 });
104123
105124 setAuthToken(Just(authToken));
106− setWallet(Just(wallet));
107− setWalletType(WALLET_TYPES.METAMASK);
108125
109126 goHome();
110127 } catch (e) {
@@ -112,7 +129,15 @@ export default function LoginSelector({
112129 setMetamask(false);
113130 setMetamaskSelected(false);
114131 }
115− }, [setAuthToken, setWallet, setWalletType, setMetamask, goHome]);
132+ }, [
133+ setMetamask,
134+ setWallet,
135+ setWalletType,
136+ skipLoginSigning,
137+ setAuthToken,
138+ goHome,
139+ setFakeToken,
140+ ]);
116141
117142 const onSubmitWalletConnect = useCallback(async () => {
118143 try {
@@ -199,6 +224,33 @@ export default function LoginSelector({
199224 onClick={() => setShowModal(true)}>
200225 <Icon icon="Info" />I have a wallet type not supported here
201226 </Grid.Item>
227+ <Grid.Item
228+ className="advanced-options"
229+ full
230+ as={Text}
231+ onClick={() => setShowAdvanced(!showAdvanced)}>
232+ Advanced{' '}
233+ <Icon
234+ display="inline-block"
235+ icon={showAdvanced ? 'ChevronNorth' : 'ChevronSouth'}
236+ size="14px"
237+ color={'black'}
238+ />
239+ </Grid.Item>
240+ {showAdvanced ? (
241+ <Grid.Item
242+ full
243+ as={Box}
244+ onClick={() => setSkipLoginSigning(!skipLoginSigning)}>
245+ <Box className="skip-signing">
246+ <Checkbox
247+ selected={skipLoginSigning}
248+ onClick={() => setSkipLoginSigning(!skipLoginSigning)}
249+ />
250+ <Text>Skip Signing on Login</Text>
251+ </Box>
252+ </Grid.Item>
253+ ) : null}
202254 <Modal show={showModal} hide={() => setShowModal(false)}>
203255 <Box className="info-modal-content">
204256 <div className="fw-bold mb5">Other Wallet Types</div>