Newer
Older
// Copyright 2015-2018 Parity Technologies (UK) Ltd.
import React, { Component } from "react";
import {
BrowserRouter,
MemoryRouter,
Redirect,
Route,
Switch
} from "react-router-dom";
import { inject, observer } from "mobx-react";
import isElectron from "is-electron";
import ReactResizeDetector from "react-resize-detector";
import Accounts from "../Accounts";
import Onboarding from "../Onboarding";
import Overlay from "../Overlay";
import { STATUS } from "../stores/healthStore";
import Tokens from "../Tokens";
// Use MemoryRouter for production viewing in file:// protocol
// https://github.com/facebook/create-react-app/issues/3591
const Router =
process.env.NODE_ENV === "production" ? MemoryRouter : BrowserRouter;
const electron = isElectron() ? window.require("electron") : null;
@inject("healthStore", "onboardingStore")
handleResize = (_, height) => {
if (!electron) {
return;
}
// Send height to main process
electron.ipcRenderer.send("asynchronous-message", "app-resize", height);
render() {
<ReactResizeDetector handleHeight onResize={this.handleResize}>
<Router>
<div className="content">{this.renderScreen()}</div>
renderScreen() {
healthStore: {
health: { status }
}
} = this.props;
<div className="window">
<Onboarding />
</div>
);
<div className="window">
<Redirect exact from="/" to="/accounts" />
<Route path="/accounts" component={Accounts} />
<Route path="/onboarding" component={Onboarding} />
<Route path="/tokens/:accountAddress" component={Tokens} />
<Redirect from="*" to="/" />