on abd024f help sign in
bridge/src/views/Activate.js
45 lines 1.2 kB history raw
1import React from 'react';
3import useRouter from 'lib/useRouter';
4import { LocalRouterProvider } from 'lib/LocalRouter';
5import { useSyncKnownPoints } from 'lib/useSyncPoints';
7import { ActivateFlowProvider } from './Activate/ActivateFlow';
8import useActivateFlowState from './Activate/useActivateFlowState';
9import ActivateCode from './Activate/ActivateCode';
10import ActivatePassport from './Activate/ActivatePassport';
11import Disclaimer from './Disclaimer';
13const NAMES = {
14 CODE: 'CODE',
15 DISCLAIMER: 'DISCLAIMER',
16 PASSPORT: 'PASSPORT',
17};
19const VIEWS = {
20 [NAMES.CODE]: ActivateCode,
21 [NAMES.PASSPORT]: ActivatePassport,
22 [NAMES.DISCLAIMER]: Disclaimer,
23};
25export default function Activate() {
26 const state = useActivateFlowState();
27 const { Route, ...router } = useRouter({
28 names: NAMES,
29 views: VIEWS,
30 initialRoutes: [{ key: NAMES.CODE }],
31 });
33 // when we know the derived point, ensure we have the data to display it
34 useSyncKnownPoints(
35 [state.derivedPoint.getOrElse(null)].filter(p => p !== null)
36 );
38 return (
39 <LocalRouterProvider value={router}>
40 <ActivateFlowProvider value={state}>
41 <Route />
42 </ActivateFlowProvider>
43 </LocalRouterProvider>
44 );