on master help sign in
feat: update hasDisclaimed & reset nonce from PR notes
commit59995bfd7a01a356c3fd098b59482284db5a7d2f authorMatt Condon (shrugs) <mattgcondon@gmail.com> dateTue 23 Jul 2019, 12:55 (7 years ago) parentf282690
5 files changed+35−24
src/Bridge.js+22−12 src/lib/disclaimerCookie.js−9 src/lib/useEthereumTransaction.js+2 src/lib/useHasDisclaimed.js+7 src/views/Disclaimer.js+4−3
src/Bridge.js+22−12
@@ -12,8 +12,8 @@ import { ROUTES } from 'lib/router';
1212import { NETWORK_TYPES } from 'lib/network';
1313import { walletFromMnemonic } from 'lib/wallet';
1414import { isDevelopment } from 'lib/flags';
15−import { hasDisclaimed } from 'lib/disclaimerCookie';
1615import useImpliedTicket from 'lib/useImpliedTicket';
16+import useHasDisclaimed from 'lib/useHasDisclaimed';
1717
1818import 'style/index.scss';
1919
@@ -36,19 +36,29 @@ const INITIAL_MNEMONIC = IS_STUBBED
3636 : Nothing();
3737const INITIAL_POINT_CURSOR = IS_STUBBED ? Just(65792) : Nothing();
3838
39−function Bridge() {
40− const landingPage = !!useImpliedTicket()
39+function useInitialRoutes() {
40+ const [hasDisclaimed] = useHasDisclaimed();
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
4152 ? ROUTE_NAMES.ACTIVATE
4253 : ROUTE_NAMES.LOGIN;
43− const initialRoutes = IS_STUBBED
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 }];
54+
55+ const extraRoutes = !hasDisclaimed ? [{ key: ROUTE_NAMES.DISCLAIMER }] : [];
56+
57+ return [{ key: landingPage }, ...extraRoutes];
58+}
59+
60+function Bridge() {
61+ const initialRoutes = useInitialRoutes();
5262
5363 return (
5464 <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(
175175 const reset = useCallback(() => {
176176 setTxHash(undefined);
177177 setSignedTransaction(undefined);
178+ setNonce(undefined);
179+ setChainId(undefined);
178180 setGasPrice(suggestedGasPrice);
179181 setState(STATE.NONE);
180182 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';
44
55import { useCheckboxInput } from 'lib/useInputs';
66import { useHistory } from 'store/history';
7−import { setDisclaimerCookie } from 'lib/disclaimerCookie';
7+import useHasDisclaimed from 'lib/useHasDisclaimed';
88
99import View from 'components/View';
1010import { ForwardButton } from 'components/Buttons';
@@ -14,15 +14,16 @@ const TEXT_STYLE = 'f5';
1414
1515export default function ActivateDisclaimer() {
1616 const { pop } = useHistory();
17+ const [, setHasDisclaimed] = useHasDisclaimed();
1718 const [understoodInput, { data: isUnderstood }] = useCheckboxInput({
1819 name: 'checkbox',
1920 label: 'I acknowledge and understand these rights',
2021 });
2122
2223 const goToPassport = useCallback(() => {
23− setDisclaimerCookie();
24+ setHasDisclaimed(true);
2425 pop();
25− }, [pop]);
26+ }, [pop, setHasDisclaimed]);
2627
2728 return (
2829 <View>