Merge branch 'master' into ui-2

This commit is contained in:
Jaco Greeff
2017-06-06 09:35:22 +02:00
24 changed files with 326 additions and 264 deletions

View File

@@ -29,10 +29,12 @@ export default class RequestOrigin extends Component {
static propTypes = {
origin: PropTypes.shape({
type: PropTypes.oneOf(['unknown', 'dapp', 'rpc', 'ipc', 'signer']),
details: PropTypes.shape({
dapp: PropTypes.string,
session: PropTypes.string
}).isRequired
details: PropTypes.oneOfType([
PropTypes.string,
PropTypes.shape({
session: PropTypes.string.isRequired
})
]).isRequired
}).isRequired
};
@@ -129,7 +131,9 @@ export default class RequestOrigin extends Component {
}
if (origin.type === 'signer') {
return this.renderSigner(origin.details.session || origin.details);
const session = origin.details && origin.details.session || origin.details;
return this.renderSigner(session);
}
}

View File

@@ -21,24 +21,28 @@ es6Promise.polyfill();
import React from 'react';
import ReactDOM from 'react-dom';
import { AppContainer } from 'react-hot-loader';
import injectTapEventPlugin from 'react-tap-event-plugin';
import ContractInstances from '@parity/shared/contracts';
import { initStore } from '@parity/shared/redux';
import { patchApi } from '@parity/shared/util/tx';
import ContextProvider from '@parity/ui/ContextProvider';
import SecureApi from '~/secureApi';
import ContractInstances from '~/contracts';
import '@parity/shared/environment';
import { initStore } from '~/redux';
import ContextProvider from '~/ui/ContextProvider';
import muiTheme from '~/ui/Theme';
import '@parity/shared/assets/fonts/Roboto/font.css';
import '@parity/shared/assets/fonts/RobotoMono/font.css';
import { patchApi } from '~/util/tx';
import { setApi } from '~/redux/providers/apiActions';
import '~/environment';
import '../assets/fonts/Roboto/font.css';
import '../assets/fonts/RobotoMono/font.css';
injectTapEventPlugin();
import ParityBar from '~/shell/ParityBar';
import ParityBar from '~/views/ParityBar';
// Test transport (std transport should be provided as global object)
class FakeTransport {
@@ -60,7 +64,7 @@ class FakeTransport {
class FrameSecureApi extends SecureApi {
constructor (transport) {
super('', null, () => {
super(transport.uiUrl, null, () => {
return transport;
});
}
@@ -87,21 +91,36 @@ class FrameSecureApi extends SecureApi {
}
}
const api = new FrameSecureApi(window.secureTransport || new FakeTransport());
const transport = window.secureTransport || new FakeTransport();
const uiUrl = transport.uiUrl || 'http://127.0.0.1:8180';
transport.uiUrl = uiUrl.replace('http://', '').replace('https://', '');
const api = new FrameSecureApi(transport);
patchApi(api);
ContractInstances.get(api);
ContractInstances.create(api);
const store = initStore(api, null, true);
store.dispatch({ type: 'initAll', api });
store.dispatch(setApi(api));
window.secureApi = api;
ReactDOM.render(
<ContextProvider
api={ api }
store={ store }
>
<ParityBar dapp externalLink={ 'http://127.0.0.1:8180' } />
</ContextProvider>,
document.querySelector('#container')
const app = (
<ParityBar dapp externalLink={ uiUrl } />
);
const container = document.querySelector('#container');
ReactDOM.render(
<AppContainer>
<ContextProvider
api={ api }
muiTheme={ muiTheme }
store={ store }
>
{ app }
</ContextProvider>
</AppContainer>,
container
);

View File

@@ -52,7 +52,6 @@ if (process.env.NODE_ENV === 'development') {
}
const AUTH_HASH = '#/auth?';
const parityUrl = process.env.PARITY_URL || '127.0.0.1:8546';
let token = null;
@@ -60,7 +59,8 @@ if (window.location.hash && window.location.hash.indexOf(AUTH_HASH) === 0) {
token = qs.parse(window.location.hash.substr(AUTH_HASH.length)).token;
}
const api = new SecureApi(parityUrl, token);
const uiUrl = window.location.host;
const api = new SecureApi(uiUrl, token);
patchApi(api);
ContractInstances.get(api);