aboutsummaryrefslogtreecommitdiffstats
path: root/src/features/webControls/containers/WebControlsScreen.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/features/webControls/containers/WebControlsScreen.js')
-rw-r--r--src/features/webControls/containers/WebControlsScreen.js28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/features/webControls/containers/WebControlsScreen.js b/src/features/webControls/containers/WebControlsScreen.js
index e1e1b9991..0273bb13e 100644
--- a/src/features/webControls/containers/WebControlsScreen.js
+++ b/src/features/webControls/containers/WebControlsScreen.js
@@ -16,7 +16,8 @@ const URL_EVENTS = [
16 'did-navigate-in-page', 16 'did-navigate-in-page',
17]; 17];
18 18
19@inject('stores', 'actions') @observer 19@inject('stores', 'actions')
20@observer
20class WebControlsScreen extends Component { 21class WebControlsScreen extends Component {
21 @observable url = ''; 22 @observable url = '';
22 23
@@ -36,15 +37,15 @@ class WebControlsScreen extends Component {
36 this.webview = service.webview; 37 this.webview = service.webview;
37 this.url = this.webview.getURL(); 38 this.url = this.webview.getURL();
38 39
39 URL_EVENTS.forEach((event) => { 40 for (const event of URL_EVENTS) {
40 this.webview.addEventListener(event, (e) => { 41 this.webview.addEventListener(event, e => {
41 if (!e.isMainFrame) return; 42 if (!e.isMainFrame) return;
42 43
43 this.url = e.url; 44 this.url = e.url;
44 this.canGoBack = this.webview.canGoBack(); 45 this.canGoBack = this.webview.canGoBack();
45 this.canGoForward = this.webview.canGoForward(); 46 this.canGoForward = this.webview.canGoForward();
46 }); 47 });
47 }); 48 }
48 } 49 }
49 }); 50 });
50 } 51 }
@@ -83,13 +84,16 @@ class WebControlsScreen extends Component {
83 84
84 try { 85 try {
85 url = new URL(url).toString(); 86 url = new URL(url).toString();
86 } catch (err) { 87 } catch {
87 // eslint-disable-next-line no-useless-escape 88 url =
88 if (url.match(/^((?!-))(xn--)?[a-z0-9][a-z0-9-_]{0,61}[a-z0-9]{0,1}\.(xn--)?([a-z0-9\-]{1,61}|[a-z0-9-]{1,30}\.[a-z]{2,})$/)) { 89 // eslint-disable-next-line no-useless-escape
89 url = `http://${url}`; 90 /^((?!-))(xn--)?[\da-z][\d_a-z-]{0,61}[\da-z]{0,1}\.(xn--)?([\da-z\-]{1,61}|[\da-z-]{1,30}\.[a-z]{2,})$/.test(
90 } else { 91 url,
91 url = SEARCH_ENGINE_URLS[this.settings.app.searchEngine]({ searchTerm: url }); 92 )
92 } 93 ? `http://${url}`
94 : SEARCH_ENGINE_URLS[this.settings.app.searchEngine]({
95 searchTerm: url,
96 });
93 } 97 }
94 98
95 this.webview.loadURL(url); 99 this.webview.loadURL(url);
@@ -114,7 +118,7 @@ class WebControlsScreen extends Component {
114 goBack={() => this.goBack()} 118 goBack={() => this.goBack()}
115 canGoForward={this.canGoForward} 119 canGoForward={this.canGoForward}
116 goForward={() => this.goForward()} 120 goForward={() => this.goForward()}
117 navigate={(url) => this.navigate(url)} 121 navigate={url => this.navigate(url)}
118 url={this.url} 122 url={this.url}
119 /> 123 />
120 ); 124 );