Address PR feedback

This commit is contained in:
fragosti
2018-05-29 15:49:13 -07:00
parent 0d3010f6fc
commit bc28a08dd0
7 changed files with 41 additions and 40 deletions

View File

@@ -20,7 +20,7 @@ export interface OnboardingFlowProps {
stepIndex: number;
isRunning: boolean;
onClose: () => void;
setOnboardingStep: (stepIndex: number) => void;
updateOnboardingStep: (stepIndex: number) => void;
}
export class OnboardingFlow extends React.Component<OnboardingFlowProps> {
@@ -75,7 +75,7 @@ export class OnboardingFlow extends React.Component<OnboardingFlowProps> {
private _goToNextStep(): void {
const nextStep = this.props.stepIndex + 1;
if (nextStep < this.props.steps.length) {
this.props.setOnboardingStep(nextStep);
this.props.updateOnboardingStep(nextStep);
} else {
this.props.onClose();
}
@@ -84,7 +84,7 @@ export class OnboardingFlow extends React.Component<OnboardingFlowProps> {
private _goToPrevStep(): void {
const nextStep = this.props.stepIndex - 1;
if (nextStep >= 0) {
this.props.setOnboardingStep(nextStep);
this.props.updateOnboardingStep(nextStep);
} else {
this.props.onClose();
}

View File

@@ -14,8 +14,8 @@ export interface PortalOnboardingFlowProps {
injectedProviderName: string;
blockchainIsLoaded: boolean;
hasBeenSeen: boolean;
setIsRunning: (isRunning: boolean) => void;
setOnboardingStep: (stepIndex: number) => void;
updateIsRunning: (isRunning: boolean) => void;
updateOnboardingStep: (stepIndex: number) => void;
}
const steps: Step[] = [
@@ -57,8 +57,8 @@ export class PortalOnboardingFlow extends React.Component<PortalOnboardingFlowPr
steps={steps}
stepIndex={this.props.stepIndex}
isRunning={this.props.isRunning}
onClose={this.props.setIsRunning.bind(this, false)}
setOnboardingStep={this.props.setOnboardingStep}
onClose={this.props.updateIsRunning.bind(this, false)}
updateOnboardingStep={this.props.updateOnboardingStep}
/>
);
}
@@ -75,7 +75,7 @@ export class PortalOnboardingFlow extends React.Component<PortalOnboardingFlowPr
private _adjustStepIfShould(): void {
if (this._isAddressAvailable()) {
if (this.props.stepIndex < 2) {
this.props.setOnboardingStep(2);
this.props.updateOnboardingStep(2);
}
return;
}
@@ -84,14 +84,14 @@ export class PortalOnboardingFlow extends React.Component<PortalOnboardingFlowPr
this.props.injectedProviderName,
);
if (isExternallyInjected) {
this.props.setOnboardingStep(1);
this.props.updateOnboardingStep(1);
return;
}
this.props.setOnboardingStep(0);
this.props.updateOnboardingStep(0);
}
private _autoStartOnboardingIfShould(): void {
if (!this.props.isRunning && !this.props.hasBeenSeen && this.props.blockchainIsLoaded) {
this.props.setIsRunning(true);
this.props.updateIsRunning(true);
}
}
}

View File

@@ -45,9 +45,9 @@ import {
import { backendClient } from 'ts/utils/backend_client';
import { colors } from 'ts/utils/colors';
import { constants } from 'ts/utils/constants';
import { zIndex } from 'ts/utils/style';
import { utils } from 'ts/utils/utils';
import { styles as walletItemStyles } from 'ts/utils/wallet_item_styles';
import { zIndex } from '../../utils/style';
export interface WalletProps {
userAddress: string;

View File

@@ -19,8 +19,8 @@ interface ConnectedState {
}
interface ConnectedDispatch {
setIsRunning: (isRunning: boolean) => void;
setOnboardingStep: (stepIndex: number) => void;
updateIsRunning: (isRunning: boolean) => void;
updateOnboardingStep: (stepIndex: number) => void;
}
const mapStateToProps = (state: State): ConnectedState => ({
@@ -34,13 +34,13 @@ const mapStateToProps = (state: State): ConnectedState => ({
});
const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
setIsRunning: (isRunning: boolean): void => {
updateIsRunning: (isRunning: boolean): void => {
dispatch({
type: ActionTypes.UpdatePortalOnboardingShowing,
data: isRunning,
});
},
setOnboardingStep: (stepIndex: number): void => {
updateOnboardingStep: (stepIndex: number): void => {
dispatch({
type: ActionTypes.UpdatePortalOnboardingStep,
data: stepIndex,

View File

@@ -1,13 +1,9 @@
// Polyfills
import * as _ from 'lodash';
import { 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 { devToolsEnhancer } from 'redux-devtools-extension/developmentOnly';
import { Redirecter } from 'ts/components/redirecter';
import { About } from 'ts/containers/about';
import { FAQ } from 'ts/containers/faq';
@@ -15,14 +11,14 @@ import { Landing } from 'ts/containers/landing';
import { NotFound } from 'ts/containers/not_found';
import { Wiki } from 'ts/containers/wiki';
import { createLazyComponent } from 'ts/lazy_component';
import { stateStorage } from 'ts/local_storage/state_storage';
import { trackedTokenStorage } from 'ts/local_storage/tracked_token_storage';
import { tradeHistoryStorage } from 'ts/local_storage/trade_history_storage';
import { reducer, State } from 'ts/redux/reducer';
import { store } from 'ts/redux/store';
import { WebsiteLegacyPaths, WebsitePaths } from 'ts/types';
import { analytics } from 'ts/utils/analytics';
import { muiTheme } from 'ts/utils/mui_theme';
import { utils } from 'ts/utils/utils';
// Polyfills
import 'whatwg-fetch';
injectTapEventPlugin();
@@ -77,18 +73,6 @@ const LazyOrderUtilsDocumentation = createLazyComponent('Documentation', async (
analytics.init();
// tslint:disable-next-line:no-floating-promises
analytics.logProviderAsync((window as any).web3);
const store: ReduxStore<State> = createStore(
reducer,
stateStorage.getPersistedDefaultState(),
devToolsEnhancer({ name: '0x Website Redux Store' }),
);
store.subscribe(
_.throttle(() => {
stateStorage.saveState({
hasPortalOnboardingBeenSeen: store.getState().hasPortalOnboardingBeenSeen,
});
}, 1000),
);
render(
<Router>

View File

@@ -26,14 +26,10 @@ export const localStorage = {
}
window.localStorage.removeItem(key);
},
getObject(key: string): object {
getObject(key: string): object | undefined {
const item = localStorage.getItemIfExists(key);
if (item) {
try {
return JSON.parse(item);
} catch (err) {
return undefined;
}
return JSON.parse(item);
}
return undefined;
},

View File

@@ -0,0 +1,21 @@
import * as _ from 'lodash';
import { createStore, Store as ReduxStore } from 'redux';
import { devToolsEnhancer } from 'redux-devtools-extension/developmentOnly';
import { stateStorage } from 'ts/local_storage/state_storage';
import { reducer, State } from 'ts/redux/reducer';
const ONE_SECOND = 1000;
export const store: ReduxStore<State> = createStore(
reducer,
stateStorage.getPersistedDefaultState(),
devToolsEnhancer({ name: '0x Website Redux Store' }),
);
store.subscribe(
_.throttle(() => {
// Persisted state
stateStorage.saveState({
hasPortalOnboardingBeenSeen: store.getState().hasPortalOnboardingBeenSeen,
});
}, ONE_SECOND),
);