on master help sign in
Display disclaimer only on first run
commit1333ce500264b205534642b47ad25de661653057 authorFang <git@fang.io> dateFri 12 Jul 2019, 21:02 (7 years ago) parent6f451f4
7 files changed+25−11
src/Bridge.js+4−1 src/lib/disclaimerCookie.js+9 src/lib/routeNames.js+1 src/lib/router.js+2 src/views/Activate.js−2 src/views/Activate/ActivateCode.js+2−5 src/views/Activate/ActivateDisclaimer.js → src/views/Disclaimer.js+7−3
src/Bridge.js+4−1
@@ -12,6 +12,7 @@ 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';
1516
1617import 'style/index.scss';
1718
@@ -24,7 +25,9 @@ const SHOULD_STUB_LOCAL = process.env.REACT_APP_STUB_LOCAL === 'true';
2425const IS_STUBBED = isDevelopment && SHOULD_STUB_LOCAL;
2526const INITIAL_ROUTES = IS_STUBBED
2627 ? [{ key: ROUTE_NAMES.LANDING }, { key: ROUTE_NAMES.LOGIN }]
27− : [{ key: ROUTE_NAMES.LANDING }];
28+ : hasDisclaimed()
29+ ? [{ key: ROUTE_NAMES.LANDING }]
30+ : [{ key: ROUTE_NAMES.DISCLAIMER }];
2831
2932const INITIAL_WALLET = IS_STUBBED
3033 ? walletFromMnemonic(
src/lib/disclaimerCookie.jsnew file+9
@@ -0,0 +1,9 @@
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/routeNames.js+1
@@ -1,5 +1,6 @@
11export const ROUTE_NAMES = {
22 DEFAULT: Symbol('DEFAULT'),
3+ DISCLAIMER: Symbol('DISCLAIMER'),
34 //
45 ACTIVATE: Symbol('ACTIVATE'),
56 INVITE_TRANSACTIONS: Symbol('INVITE_TRANSACTIONS'),
src/lib/router.js+2
@@ -1,4 +1,5 @@
11import Landing from '../views/Landing';
2+import Disclaimer from '../views/Disclaimer';
23import Login from '../views/Login.js';
34import InvitesManage from '../views/InvitesManage.js';
45import Admin from '../views/Admin';
@@ -28,6 +29,7 @@ import { ROUTE_NAMES } from './routeNames';
2829
2930export const ROUTES = {
3031 [ROUTE_NAMES.LANDING]: Landing,
32+ [ROUTE_NAMES.DISCLAIMER]: Disclaimer,
3133 [ROUTE_NAMES.ACTIVATE]: Activate,
3234 [ROUTE_NAMES.INVITE]: Invite,
3335 [ROUTE_NAMES.INVITES_MANAGE]: InvitesManage,
src/views/Activate.js−2
@@ -5,7 +5,6 @@ import useRouter from 'lib/useRouter';
55import { ActivateFlowProvider } from './Activate/ActivateFlow';
66import useActivateFlowState from './Activate/useActivateFlowState';
77import ActivateCode from './Activate/ActivateCode';
8−import ActivateDisclaimer from './Activate/ActivateDisclaimer';
98import { LocalRouterProvider } from 'lib/LocalRouter';
109import ActivatePassport from './Activate/ActivatePassport';
1110
@@ -17,7 +16,6 @@ const NAMES = {
1716
1817const VIEWS = {
1918 [NAMES.CODE]: ActivateCode,
20− [NAMES.DISCLAIMER]: ActivateDisclaimer,
2119 [NAMES.PASSPORT]: ActivatePassport,
2220};
2321
src/views/Activate/ActivateCode.js+2−5
@@ -48,10 +48,7 @@ export default function ActivateCode() {
4848 const goToLogin = useCallback(() => history.popAndPush(ROUTE_NAMES.LOGIN), [
4949 history,
5050 ]);
51− const goToDisclaimer = useCallback(() => push(names.DISCLAIMER), [
52− names,
53− push,
54− ]);
51+ const goToPassport = useCallback(() => push(names.PASSPORT), [names, push]);
5552
5653 const pass = derivedWallet.matchWith({
5754 Nothing: () => false,
@@ -142,7 +139,7 @@ export default function ActivateCode() {
142139 className="mt4"
143140 disabled={!pass || deriving}
144141 accessory={deriving ? <Blinky /> : undefined}
145− onClick={goToDisclaimer}
142+ onClick={goToPassport}
146143 solid
147144 full>
148145 {deriving && 'Deriving...'}
src/views/Activate/ActivateDisclaimer.js → src/views/Disclaimer.jsrenamed+7−3
@@ -3,7 +3,8 @@ import cn from 'classnames';
33import { Grid, H3, B, Text, CheckboxInput } from 'indigo-react';
44
55import { useCheckboxInput } from 'lib/useInputs';
6−import { useLocalRouter } from 'lib/LocalRouter';
6+import { useHistory } from 'store/history';
7+import { setDisclaimerCookie } from 'lib/disclaimerCookie';
78
89import View from 'components/View';
910import { ForwardButton } from 'components/Buttons';
@@ -12,13 +13,16 @@ import WarningBox from 'components/WarningBox';
1213const TEXT_STYLE = 'f5';
1314
1415export default function ActivateDisclaimer() {
15− const { push, names } = useLocalRouter();
16+ const { popAndPush, names } = useHistory();
1617 const [understoodInput, { data: isUnderstood }] = useCheckboxInput({
1718 name: 'checkbox',
1819 label: 'I acknowledge and understand these rights',
1920 });
2021
21− const goToPassport = useCallback(() => push(names.PASSPORT), [push, names]);
22+ const goToPassport = useCallback(() => {
23+ setDisclaimerCookie();
24+ popAndPush(names.LANDING);
25+ }, [popAndPush, names]);
2226
2327 return (
2428 <View>