on master help sign in
feat: update hasDisclaimed & reset nonce from PR notes
59995bfMatt Condon (shrugs)
src/Bridge.js+22−12
@@ -12,8 +12,8 @@ import { ROUTES } from 'lib/router';
12import { NETWORK_TYPES } from 'lib/network';
12import { NETWORK_TYPES } from 'lib/network';
13import { walletFromMnemonic } from 'lib/wallet';
13import { walletFromMnemonic } from 'lib/wallet';
14import { isDevelopment } from 'lib/flags';
14import { isDevelopment } from 'lib/flags';
15−import { hasDisclaimed } from 'lib/disclaimerCookie';
16import useImpliedTicket from 'lib/useImpliedTicket';
15import useImpliedTicket from 'lib/useImpliedTicket';
16+import useHasDisclaimed from 'lib/useHasDisclaimed';
17
17
18import 'style/index.scss';
18import 'style/index.scss';
19
19
@@ -36,19 +36,29 @@ const INITIAL_MNEMONIC = IS_STUBBED
36 : Nothing();
36 : Nothing();
37const INITIAL_POINT_CURSOR = IS_STUBBED ? Just(65792) : Nothing();
37const INITIAL_POINT_CURSOR = IS_STUBBED ? Just(65792) : Nothing();
38
38
39−function Bridge() {
39+function useInitialRoutes() {
40+ const [hasDisclaimed] = useHasDisclaimed();
40− const landingPage = !!useImpliedTicket()
41+ const hasImpliedTicket = !!useImpliedTicket();
42+
43+ if (IS_STUBBED) {
44+ return [
45+ { key: ROUTE_NAMES.LOGIN },
46+ { key: ROUTE_NAMES.POINTS },
47+ { key: ROUTE_NAMES.POINT },
48+ ];
49+ }
50+
51+ const landingPage = hasImpliedTicket
41 ? ROUTE_NAMES.ACTIVATE
52 ? ROUTE_NAMES.ACTIVATE
42 : ROUTE_NAMES.LOGIN;
53 : ROUTE_NAMES.LOGIN;
43− const initialRoutes = IS_STUBBED
54+
44− ? [
45− { key: ROUTE_NAMES.LOGIN },
46− { key: ROUTE_NAMES.POINTS },
47− { key: ROUTE_NAMES.POINT },
48− ]
49− : hasDisclaimed()
50− ? [{ key: landingPage }]
51− : [{ key: landingPage }, { key: ROUTE_NAMES.DISCLAIMER }];
55+ const extraRoutes = !hasDisclaimed ? [{ key: ROUTE_NAMES.DISCLAIMER }] : [];
56+
57+ return [{ key: landingPage }, ...extraRoutes];
58+}
59+
60+function Bridge() {
61+ const initialRoutes = useInitialRoutes();
52
62
53 return (
63 return (
54 <Provider
64 <Provider
src/lib/disclaimerCookie.jsdeleted−9
@@ -1,9 +0,0 @@
1−const COOKIE_ID = 'bridge_disclaimed';
2−
3−export const hasDisclaimed = () => {
4− return document.cookie.includes(COOKIE_ID);
5−};
6−
7−export const setDisclaimerCookie = () => {
8− document.cookie = COOKIE_ID;
9−};
src/lib/useEthereumTransaction.js+2
@@ -175,6 +175,8 @@ export default function useEthereumTransaction(
175 const reset = useCallback(() => {
175 const reset = useCallback(() => {
176 setTxHash(undefined);
176 setTxHash(undefined);
177 setSignedTransaction(undefined);
177 setSignedTransaction(undefined);
178+ setNonce(undefined);
179+ setChainId(undefined);
178 setGasPrice(suggestedGasPrice);
180 setGasPrice(suggestedGasPrice);
179 setState(STATE.NONE);
181 setState(STATE.NONE);
180 setError(undefined);
182 setError(undefined);
src/lib/useHasDisclaimed.jsnew file+7
@@ -0,0 +1,7 @@
1+import useLocalStorageState from './useLocalStorageState';
2+
3+const HAS_DISCLAIMED_KEY = 'bridge:has-disclaimed';
4+
5+export default function useHasDisclaimed() {
6+ return useLocalStorageState(HAS_DISCLAIMED_KEY, false);
7+}
src/views/Disclaimer.js+4−3
@@ -4,7 +4,7 @@ import { Grid, H3, B, Text, CheckboxInput } from 'indigo-react';
4
4
5import { useCheckboxInput } from 'lib/useInputs';
5import { useCheckboxInput } from 'lib/useInputs';
6import { useHistory } from 'store/history';
6import { useHistory } from 'store/history';
7−import { setDisclaimerCookie } from 'lib/disclaimerCookie';
7+import useHasDisclaimed from 'lib/useHasDisclaimed';
8
8
9import View from 'components/View';
9import View from 'components/View';
10import { ForwardButton } from 'components/Buttons';
10import { ForwardButton } from 'components/Buttons';
@@ -14,15 +14,16 @@ const TEXT_STYLE = 'f5';
14
14
15export default function ActivateDisclaimer() {
15export default function ActivateDisclaimer() {
16 const { pop } = useHistory();
16 const { pop } = useHistory();
17+ const [, setHasDisclaimed] = useHasDisclaimed();
17 const [understoodInput, { data: isUnderstood }] = useCheckboxInput({
18 const [understoodInput, { data: isUnderstood }] = useCheckboxInput({
18 name: 'checkbox',
19 name: 'checkbox',
19 label: 'I acknowledge and understand these rights',
20 label: 'I acknowledge and understand these rights',
20 });
21 });
21
22
22 const goToPassport = useCallback(() => {
23 const goToPassport = useCallback(() => {
23− setDisclaimerCookie();
24+ setHasDisclaimed(true);
24 pop();
25 pop();
25− }, [pop]);
26+ }, [pop, setHasDisclaimed]);
26
27
27 return (
28 return (
28 <View>
29 <View>