Newer
Older
// Copyright 2015-2018 Parity Technologies (UK) Ltd.
Axel Chalon
committed
import React, { Component } from 'react';
import {
BrowserRouter,
MemoryRouter,
Redirect,
Route,
Switch
Axel Chalon
committed
} from 'react-router-dom';
import { inject, observer } from 'mobx-react';
Axel Chalon
committed
import Accounts from '../Accounts';
import BackupAccount from '../BackupAccount';
Axel Chalon
committed
import Onboarding from '../Onboarding';
import RequireHealthOverlay from '../RequireHealthOverlay';
Axel Chalon
committed
import Tokens from '../Tokens';
// Use MemoryRouter for production viewing in file:// protocol
// https://github.com/facebook/create-react-app/issues/3591
const Router =
Axel Chalon
committed
process.env.NODE_ENV === 'production' ? MemoryRouter : BrowserRouter;
onboardingStore: { isFirstRun },
parityStore: { api }
Axel Chalon
committed
<div className='window'>
<Onboarding />
</div>
);
// The child components make use of light.js and light.js needs to be passed
// an API first, otherwise it will throw an error.
// We set parityStore.api right after we set the API for light.js, so we
// verify here that parityStore.api is defined, and if not we don't render
// the children, just a <RequireHealthOverlay />.
<RequireHealthOverlay fullscreen require='node'>
{/* Adding these components to have minimum height on window */}
<div className='content'>
<div className='window' />
</div>
</RequireHealthOverlay>
<div className='content'>
<div className='window'>
<Router>
<Switch>
{/* The next line is the homepage */}
<Redirect exact from='/' to='/accounts' />
<Route path='/accounts' component={Accounts} />
<Route path='/onboarding' component={Onboarding} />
<Route path='/tokens/:accountAddress' component={Tokens} />
<Route path='/whitelist/:accountAddress' component={Whitelist} />
<Route path='/backup/:accountAddress' component={BackupAccount} />
<Route
path='/send/:tokenAddress/from/:accountAddress'
component={Send}
/>
<Redirect from='*' to='/' />
</Switch>
</Router>