diff --git a/app/renderer/css/main.css b/app/renderer/css/main.css index a9a763dc..1c9b2352 100644 --- a/app/renderer/css/main.css +++ b/app/renderer/css/main.css @@ -101,6 +101,18 @@ body { color: #98a9b3; } +.action-button.disable { + opacity: 0.6; +} + +.action-button.disable:hover { + cursor: not-allowed; +} + +.action-button.disable:hover i { + color: #6c8592; +} + .tab:first-child { margin-top: 8px; } diff --git a/app/renderer/js/components/webview.js b/app/renderer/js/components/webview.js index 3891f707..1bd7a97c 100644 --- a/app/renderer/js/components/webview.js +++ b/app/renderer/js/components/webview.js @@ -69,6 +69,18 @@ class WebView extends BaseComponent { this.props.onTitleChange(); }); + this.$el.addEventListener('did-navigate-in-page', event => { + const isSettingPage = event.url.includes('renderer/preference.html'); + if (isSettingPage) { + return; + } + this.canGoBackButton(); + }); + + this.$el.addEventListener('did-navigate', () => { + this.canGoBackButton(); + }); + this.$el.addEventListener('page-favicon-updated', event => { const { favicons } = event; // This returns a string of favicons URL. If there is a PM counts in unread messages then the URL would be like @@ -183,6 +195,15 @@ class WebView extends BaseComponent { } } + canGoBackButton() { + const $backButton = document.querySelector('#actions-container #back-action'); + if (this.$el.canGoBack()) { + $backButton.classList.remove('disable'); + } else { + $backButton.classList.add('disable'); + } + } + forward() { if (this.$el.canGoForward()) { this.$el.goForward(); diff --git a/app/renderer/js/main.js b/app/renderer/js/main.js index 98e73b2b..f0588ed8 100644 --- a/app/renderer/js/main.js +++ b/app/renderer/js/main.js @@ -284,6 +284,12 @@ class ServerManagerView { } } + try { + this.tabs[index].webview.canGoBackButton(); + } catch (err) { + console.log(err); + } + this.activeTabIndex = index; this.tabs[index].activate(); diff --git a/app/renderer/main.html b/app/renderer/main.html index f07d528d..91966d3f 100644 --- a/app/renderer/main.html +++ b/app/renderer/main.html @@ -28,7 +28,7 @@ refresh
-