summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-09-21 08:55:33 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-09-24 08:39:30 -0300
commit66ba3a0dff2e660cda34f98fb8547e7b7327321c (patch)
tree07b47832d530c5e3b4fb7528f7e337e0b09ddbf4
parent9ada7902470c2a6d2217766b06e4bcb538e948c3 (diff)
downloadmullvadvpn-66ba3a0dff2e660cda34f98fb8547e7b7327321c.tar.xz
mullvadvpn-66ba3a0dff2e660cda34f98fb8547e7b7327321c.zip
Remove `WindowStateObserver`
-rw-r--r--gui/packages/desktop/src/renderer/components/Account.js33
-rw-r--r--gui/packages/desktop/src/renderer/components/Connect.js13
-rw-r--r--gui/packages/desktop/src/renderer/components/Settings.js16
-rw-r--r--gui/packages/desktop/src/renderer/containers/AccountPage.js1
-rw-r--r--gui/packages/desktop/src/renderer/containers/ConnectPage.js1
-rw-r--r--gui/packages/desktop/src/renderer/containers/SettingsPage.js3
-rw-r--r--gui/packages/desktop/src/renderer/lib/window-state-observer.js64
7 files changed, 1 insertions, 130 deletions
diff --git a/gui/packages/desktop/src/renderer/components/Account.js b/gui/packages/desktop/src/renderer/components/Account.js
index 4209496317..83ab3721cb 100644
--- a/gui/packages/desktop/src/renderer/components/Account.js
+++ b/gui/packages/desktop/src/renderer/components/Account.js
@@ -9,7 +9,6 @@ import NavigationBar, { BackBarItem } from './NavigationBar';
import SettingsHeader, { HeaderTitle } from './SettingsHeader';
import styles from './AccountStyles';
import Img from './Img';
-import WindowStateObserver from '../lib/window-state-observer';
import type { AccountToken } from '../lib/daemon-rpc';
@@ -17,44 +16,26 @@ type Props = {
accountToken: AccountToken,
accountExpiry: string,
expiryLocale: string,
- updateAccountExpiry: () => Promise<void>,
onLogout: () => void,
onClose: () => void,
onBuyMore: () => void,
};
type State = {
- isRefreshingExpiry: boolean,
showAccountTokenCopiedMessage: boolean,
};
export default class Account extends Component<Props, State> {
state = {
- isRefreshingExpiry: false,
showAccountTokenCopiedMessage: false,
};
- _isMounted = false;
_copyTimer: ?TimeoutID;
- _windowStateObserver = new WindowStateObserver();
-
- componentDidMount() {
- this._isMounted = true;
- this._refreshAccountExpiry();
-
- this._windowStateObserver.onShow = () => {
- this._refreshAccountExpiry();
- };
- }
componentWillUnmount() {
- this._isMounted = false;
-
if (this._copyTimer) {
clearTimeout(this._copyTimer);
}
-
- this._windowStateObserver.dispose();
}
onAccountTokenClick() {
@@ -139,18 +120,4 @@ export default class Account extends Component<Props, State> {
</Layout>
);
}
-
- async _refreshAccountExpiry() {
- this.setState({ isRefreshingExpiry: true });
-
- try {
- await this.props.updateAccountExpiry();
- } catch (e) {
- // TODO: Report the error to user
- }
-
- if (this._isMounted) {
- this.setState({ isRefreshingExpiry: false });
- }
- }
}
diff --git a/gui/packages/desktop/src/renderer/components/Connect.js b/gui/packages/desktop/src/renderer/components/Connect.js
index e24c2aac46..8e29cedfb6 100644
--- a/gui/packages/desktop/src/renderer/components/Connect.js
+++ b/gui/packages/desktop/src/renderer/components/Connect.js
@@ -12,7 +12,6 @@ import Img from './Img';
import Map from './Map';
import styles from './ConnectStyles';
import { NoCreditError, NoInternetError } from '../errors';
-import WindowStateObserver from '../lib/window-state-observer';
import type { BlockReason, TunnelStateTransition } from '../lib/daemon-rpc';
import type { HeaderBarStyle } from './HeaderBar';
@@ -27,7 +26,6 @@ type Props = {
onConnect: () => void,
onDisconnect: () => void,
onExternalLink: (type: string) => void,
- updateAccountExpiry: () => Promise<void>,
};
type State = {
@@ -71,7 +69,6 @@ export default class Connect extends Component<Props, State> {
};
_copyTimer: ?TimeoutID;
- _windowStateObserver = new WindowStateObserver();
constructor(props: Props) {
super();
@@ -83,20 +80,10 @@ export default class Connect extends Component<Props, State> {
};
}
- componentDidMount() {
- this.props.updateAccountExpiry();
-
- this._windowStateObserver.onShow = () => {
- this.props.updateAccountExpiry();
- };
- }
-
componentWillUnmount() {
if (this._copyTimer) {
clearTimeout(this._copyTimer);
}
-
- this._windowStateObserver.dispose();
}
componentDidUpdate(oldProps: Props, _oldState: State) {
diff --git a/gui/packages/desktop/src/renderer/components/Settings.js b/gui/packages/desktop/src/renderer/components/Settings.js
index cb8071a9ce..8a7df34f43 100644
--- a/gui/packages/desktop/src/renderer/components/Settings.js
+++ b/gui/packages/desktop/src/renderer/components/Settings.js
@@ -11,7 +11,6 @@ import NavigationBar, { CloseBarItem } from './NavigationBar';
import SettingsHeader, { HeaderTitle } from './SettingsHeader';
import CustomScrollbars from './CustomScrollbars';
import styles from './SettingsStyles';
-import WindowStateObserver from '../lib/window-state-observer';
import { colors } from '../../config';
import type { LoginState } from '../redux/account/reducers';
@@ -29,24 +28,9 @@ type Props = {
onViewPreferences: () => void,
onViewAdvancedSettings: () => void,
onExternalLink: (type: string) => void,
- updateAccountExpiry: () => Promise<void>,
};
export default class Settings extends Component<Props> {
- _windowStateObserver = new WindowStateObserver();
-
- componentDidMount() {
- this.props.updateAccountExpiry();
-
- this._windowStateObserver.onShow = () => {
- this.props.updateAccountExpiry();
- };
- }
-
- componentWillUnmount() {
- this._windowStateObserver.dispose();
- }
-
render() {
return (
<Layout>
diff --git a/gui/packages/desktop/src/renderer/containers/AccountPage.js b/gui/packages/desktop/src/renderer/containers/AccountPage.js
index 8047764348..fc9d5394be 100644
--- a/gui/packages/desktop/src/renderer/containers/AccountPage.js
+++ b/gui/packages/desktop/src/renderer/containers/AccountPage.js
@@ -18,7 +18,6 @@ const mapStateToProps = (state: ReduxState) => ({
const mapDispatchToProps = (dispatch: ReduxDispatch, props: SharedRouteProps) => {
const history = bindActionCreators({ goBack }, dispatch);
return {
- updateAccountExpiry: () => props.app.updateAccountExpiry(),
onLogout: () => {
props.app.logout();
},
diff --git a/gui/packages/desktop/src/renderer/containers/ConnectPage.js b/gui/packages/desktop/src/renderer/containers/ConnectPage.js
index 5edb4447cc..e98398a32c 100644
--- a/gui/packages/desktop/src/renderer/containers/ConnectPage.js
+++ b/gui/packages/desktop/src/renderer/containers/ConnectPage.js
@@ -88,7 +88,6 @@ const mapDispatchToProps = (dispatch: ReduxDispatch, props: SharedRouteProps) =>
}
},
onExternalLink: (type) => shell.openExternal(links[type]),
- updateAccountExpiry: () => props.app.updateAccountExpiry(),
};
};
diff --git a/gui/packages/desktop/src/renderer/containers/SettingsPage.js b/gui/packages/desktop/src/renderer/containers/SettingsPage.js
index 98b0fcd061..8913e79fcd 100644
--- a/gui/packages/desktop/src/renderer/containers/SettingsPage.js
+++ b/gui/packages/desktop/src/renderer/containers/SettingsPage.js
@@ -17,7 +17,7 @@ const mapStateToProps = (state: ReduxState) => ({
consistentVersion: state.version.consistent,
upToDateVersion: state.version.upToDate,
});
-const mapDispatchToProps = (dispatch: ReduxDispatch, props: SharedRouteProps) => {
+const mapDispatchToProps = (dispatch: ReduxDispatch, _props: SharedRouteProps) => {
const history = bindActionCreators({ push, goBack }, dispatch);
return {
onQuit: () => remote.app.quit(),
@@ -27,7 +27,6 @@ const mapDispatchToProps = (dispatch: ReduxDispatch, props: SharedRouteProps) =>
onViewPreferences: () => history.push('/settings/preferences'),
onViewAdvancedSettings: () => history.push('/settings/advanced'),
onExternalLink: (type) => shell.openExternal(links[type]),
- updateAccountExpiry: () => props.app.updateAccountExpiry(),
};
};
diff --git a/gui/packages/desktop/src/renderer/lib/window-state-observer.js b/gui/packages/desktop/src/renderer/lib/window-state-observer.js
deleted file mode 100644
index 67252d8f6a..0000000000
--- a/gui/packages/desktop/src/renderer/lib/window-state-observer.js
+++ /dev/null
@@ -1,64 +0,0 @@
-// @flow
-
-import { remote } from 'electron';
-
-type EventListener = () => void;
-
-// Tiny helper for detecting the window state.
-export default class WindowStateObserver {
- _onShow: ?EventListener;
- _onHide: ?EventListener;
-
- get onShow() {
- return this._onShow;
- }
-
- set onShow(listener: ?EventListener) {
- const currentWindow = remote.getCurrentWindow();
- const oldListener = this._onShow;
- if (oldListener) {
- currentWindow.removeListener('show', oldListener);
- }
-
- if (listener) {
- currentWindow.addListener('show', listener);
- }
-
- this._onShow = listener;
- }
-
- get onHide() {
- return this._onHide;
- }
-
- set onHide(listener: ?EventListener) {
- const currentWindow = remote.getCurrentWindow();
- const oldListener = this._onHide;
- if (oldListener) {
- currentWindow.removeListener('hide', oldListener);
- }
-
- if (listener) {
- currentWindow.addListener('hide', listener);
- }
-
- this._onHide = listener;
- }
-
- constructor() {
- // Because BrowserWindow persists between page reloads,
- // it's important to release event handlers when that happens.
- window.addEventListener('beforeunload', this._onBeforeUnload);
- }
-
- _onBeforeUnload = () => {
- this.dispose();
- };
-
- dispose() {
- this.onShow = null;
- this.onHide = null;
-
- window.removeEventListener('beforeunload', this._onBeforeUnload);
- }
-}