* development: (54 commits) Fix redundant spaces Fix tests Fix website unused vars Fix connect unused vars Fix 0x.js unused vars Dissallow unused vars/imports Implement first custom linter rule async-suffix Reuse intervalutils in website Add a newline Name a variable Add a comment Fix a conditional Make migrations deterministic Fix linter error Fix linter errors Add a function to init token balances Rename tokenUtils.getNonProtocolTokens to tokenUtils.getDummyTokens Add DummyToken to gitignore Add DummyToken to artifacts list Increase mocha timeout ...
128 lines
5.0 KiB
TypeScript
128 lines
5.0 KiB
TypeScript
// Polyfills
|
|
import 'whatwg-fetch';
|
|
|
|
import BigNumber from 'bignumber.js';
|
|
import {colors, getMuiTheme, MuiThemeProvider} from 'material-ui/styles';
|
|
import * as React from 'react';
|
|
import {render} from 'react-dom';
|
|
import {Provider} from 'react-redux';
|
|
import {BrowserRouter as Router, Redirect, Route, Switch} from 'react-router-dom';
|
|
import * as injectTapEventPlugin from 'react-tap-event-plugin';
|
|
import {createStore, Store as ReduxStore} from 'redux';
|
|
import {createLazyComponent} from 'ts/lazy_component';
|
|
import {trackedTokenStorage} from 'ts/local_storage/tracked_token_storage';
|
|
import {tradeHistoryStorage} from 'ts/local_storage/trade_history_storage';
|
|
import {About} from 'ts/pages/about/about';
|
|
import {FAQ} from 'ts/pages/faq/faq';
|
|
import {Landing} from 'ts/pages/landing/landing';
|
|
import {NotFound} from 'ts/pages/not_found';
|
|
import {Wiki} from 'ts/pages/wiki/wiki';
|
|
import {reducer, State} from 'ts/redux/reducer';
|
|
import {WebsitePaths} from 'ts/types';
|
|
import {constants} from 'ts/utils/constants';
|
|
injectTapEventPlugin();
|
|
|
|
// By default BigNumber's `toString` method converts to exponential notation if the value has
|
|
// more then 20 digits. We want to avoid this behavior, so we set EXPONENTIAL_AT to a high number
|
|
BigNumber.config({
|
|
EXPONENTIAL_AT: 1000,
|
|
});
|
|
|
|
// Check if we've introduced an update that requires us to clear the tradeHistory local storage entries
|
|
tradeHistoryStorage.clearIfRequired();
|
|
trackedTokenStorage.clearIfRequired();
|
|
|
|
const CUSTOM_GREY = 'rgb(39, 39, 39)';
|
|
const CUSTOM_GREEN = 'rgb(102, 222, 117)';
|
|
const CUSTOM_DARKER_GREEN = 'rgb(77, 197, 92)';
|
|
|
|
import 'basscss/css/basscss.css';
|
|
import 'less/all.less';
|
|
|
|
const muiTheme = getMuiTheme({
|
|
appBar: {
|
|
height: 45,
|
|
color: 'white',
|
|
textColor: 'black',
|
|
},
|
|
palette: {
|
|
pickerHeaderColor: constants.CUSTOM_BLUE,
|
|
primary1Color: constants.CUSTOM_BLUE,
|
|
primary2Color: constants.CUSTOM_BLUE,
|
|
textColor: colors.grey700,
|
|
},
|
|
datePicker: {
|
|
color: colors.grey700,
|
|
textColor: 'white',
|
|
calendarTextColor: 'white',
|
|
selectColor: CUSTOM_GREY,
|
|
selectTextColor: 'white',
|
|
},
|
|
timePicker: {
|
|
color: colors.grey700,
|
|
textColor: 'white',
|
|
accentColor: 'white',
|
|
headerColor: CUSTOM_GREY,
|
|
selectColor: CUSTOM_GREY,
|
|
selectTextColor: CUSTOM_GREY,
|
|
},
|
|
toggle: {
|
|
thumbOnColor: CUSTOM_GREEN,
|
|
trackOnColor: CUSTOM_DARKER_GREEN,
|
|
},
|
|
});
|
|
|
|
// We pass modulePromise returning lambda instead of module promise,
|
|
// cause we only want to import the module when the user navigates to the page.
|
|
// At the same time webpack statically parses for System.import() to determine bundle chunk split points
|
|
// so each lazy import needs it's own `System.import()` declaration.
|
|
const LazyPortal = createLazyComponent(
|
|
'Portal', async () => System.import<any>(/* webpackChunkName: "portal" */'ts/containers/portal'),
|
|
);
|
|
const LazyZeroExJSDocumentation = createLazyComponent(
|
|
'Documentation',
|
|
async () => System.import<any>(/* webpackChunkName: "zeroExDocs" */'ts/containers/zero_ex_js_documentation'),
|
|
);
|
|
const LazySmartContractsDocumentation = createLazyComponent(
|
|
'Documentation',
|
|
async () => System.import<any>(
|
|
/* webpackChunkName: "smartContractDocs" */'ts/containers/smart_contracts_documentation',
|
|
),
|
|
);
|
|
const LazyConnectDocumentation = createLazyComponent(
|
|
'Documentation',
|
|
async () => System.import<any>(
|
|
/* webpackChunkName: "connectDocs" */'ts/containers/connect_documentation',
|
|
),
|
|
);
|
|
|
|
const store: ReduxStore<State> = createStore(reducer);
|
|
render(
|
|
<Router>
|
|
<div>
|
|
<MuiThemeProvider muiTheme={muiTheme}>
|
|
<Provider store={store}>
|
|
<div>
|
|
<Switch>
|
|
<Route exact={true} path="/" component={Landing as any} />
|
|
<Redirect from="/otc" to={`${WebsitePaths.Portal}`}/>
|
|
<Route path={`${WebsitePaths.Portal}`} component={LazyPortal} />
|
|
<Route path={`${WebsitePaths.FAQ}`} component={FAQ as any} />
|
|
<Route path={`${WebsitePaths.About}`} component={About as any} />
|
|
<Route path={`${WebsitePaths.Wiki}`} component={Wiki as any} />
|
|
<Route path={`${WebsitePaths.ZeroExJs}/:version?`} component={LazyZeroExJSDocumentation} />
|
|
<Route path={`${WebsitePaths.Connect}/:version?`} component={LazyConnectDocumentation} />
|
|
<Route
|
|
path={`${WebsitePaths.SmartContracts}/:version?`}
|
|
component={LazySmartContractsDocumentation}
|
|
/>
|
|
<Route component={NotFound as any} />
|
|
</Switch>
|
|
</div>
|
|
</Provider>
|
|
</MuiThemeProvider>
|
|
</div>
|
|
</Router>,
|
|
document.getElementById('app'),
|
|
);
|