diff --git a/js/package-lock.json b/js/package-lock.json index 6324f5ab864..4983b763572 100644 --- a/js/package-lock.json +++ b/js/package-lock.json @@ -7722,7 +7722,7 @@ "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { "brace-expansion": "1.1.8" } @@ -10081,7 +10081,7 @@ "react-qr-reader": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/react-qr-reader/-/react-qr-reader-1.1.3.tgz", - "integrity": "sha512-ruBF8KaSwUW9nbzjO4rA7/HOCGYZuNUz9od7uBRy8SRBi24nwxWWmwa2z8R6vPGDRglA0y2Qk1aVBuC1olTnHw==", + "integrity": "sha1-dDmnZvyZPLj17u/HLCnblh1AswI=", "requires": { "jsqr": "git+https://github.com/JodusNodus/jsQR.git#5ba1acefa1cbb9b2bc92b49f503f2674e2ec212b", "prop-types": "15.5.10", diff --git a/js/src/views/Home/Urls/urls.css b/js/src/views/Home/Urls/urls.css index 5b5deeb5b77..81d3e8dc259 100644 --- a/js/src/views/Home/Urls/urls.css +++ b/js/src/views/Home/Urls/urls.css @@ -47,6 +47,7 @@ color: rgb(0, 151, 167); overflow: hidden; text-overflow: ellipsis; + cursor: pointer; } .timestamp { diff --git a/js/src/views/Home/Urls/urls.js b/js/src/views/Home/Urls/urls.js index 7ded1ecdafe..acf4ae36fa4 100644 --- a/js/src/views/Home/Urls/urls.js +++ b/js/src/views/Home/Urls/urls.js @@ -127,7 +127,7 @@ export default class Urls extends Component { this.props.store.gotoUrl(url); if (extensionStore.hasExtension) { - window.open(this.props.store.currentUrl, '_blank'); + window.open(url, '_blank'); } else { router.push('/web'); } diff --git a/js/src/views/Web/store.js b/js/src/views/Web/store.js index 9dd8ea3fe51..99b9b4b487a 100644 --- a/js/src/views/Web/store.js +++ b/js/src/views/Web/store.js @@ -64,12 +64,9 @@ export default class Store { if (!hasProtocol.test(url)) { url = `https://${url}`; } - + this.setNextUrl(url); return this.generateToken(url).then(() => { - transaction(() => { - this.setNextUrl(url); - this.setCurrentUrl(this.nextUrl); - }); + this.setCurrentUrl(this.nextUrl); }); } diff --git a/js/src/views/Web/web.css b/js/src/views/Web/web.css index 3ea68bb6caf..94e9d8e6f77 100644 --- a/js/src/views/Web/web.css +++ b/js/src/views/Web/web.css @@ -21,10 +21,39 @@ width: 100%; } +:root .warningClose { + text-align: right; + a { + color: #fff; + text-decoration: underline; + } +} + +.warning { + color: #fff; + background: #f80; + position: fixed; + bottom: 0; + left: 0; + right: 50%; + padding: 1.5em; + z-index: 100; + animation: fadein 0.3s; +} + +@keyframes fadein { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + .loading { text-align: center; margin-top: 5em; - color: #999; + color: #444; font-size: 2em; } diff --git a/js/src/views/Web/web.js b/js/src/views/Web/web.js index 8e81b43d5e4..9e3dbca5483 100644 --- a/js/src/views/Web/web.js +++ b/js/src/views/Web/web.js @@ -35,6 +35,10 @@ export default class Web extends Component { store = Store.get(this.context.api); + state = { + isWarningDismissed: false + } + componentDidMount () { this.store.gotoUrl(this.props.params.url); } @@ -83,10 +87,36 @@ export default class Web extends Component { scrolling='auto' src={ encodedPath } /> + { this.renderWarning() } + + ); + } + + renderWarning () { + if (this.state.isWarningDismissed) { + return null; + } + + return ( +
+

+ WARNING: The web browser dapp is not safe as a general purpose browser. + Make sure to only visit web3-enabled sites that you trust. + Do not use it to browse web2.0 and never log in to any service - web3 dapps should not require that. +

+
+ Okay! +
); } + dismissWarning = () => { + this.setState({ + isWarningDismissed: true + }); + }; + iframeOnLoad = () => { this.store.setLoading(false); };