summaryrefslogtreecommitdiffhomepage
path: root/gui
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2018-10-09 02:51:32 +0200
committerAndrej Mihajlov <and@mullvad.net>2018-10-10 15:19:48 +0200
commitaf9462de67a86fc31e846e7b72f0420091106c8f (patch)
tree11a00b57bac8dd0aa211fc0f7c891ffada6366a9 /gui
parentcad6b43564dc3e5816a2ce2e213756137af0f99e (diff)
downloadmullvadvpn-af9462de67a86fc31e846e7b72f0420091106c8f.tar.xz
mullvadvpn-af9462de67a86fc31e846e7b72f0420091106c8f.zip
Determine next upgrade version for beta/stable
Diffstat (limited to 'gui')
-rw-r--r--gui/packages/desktop/src/renderer/redux/version/reducers.js28
1 files changed, 25 insertions, 3 deletions
diff --git a/gui/packages/desktop/src/renderer/redux/version/reducers.js b/gui/packages/desktop/src/renderer/redux/version/reducers.js
index 2d02444b08..caf14ad560 100644
--- a/gui/packages/desktop/src/renderer/redux/version/reducers.js
+++ b/gui/packages/desktop/src/renderer/redux/version/reducers.js
@@ -6,6 +6,7 @@ export type VersionReduxState = {
current: string,
latest: ?string,
latestStable: ?string,
+ nextUpgrade: ?string,
upToDate: boolean,
consistent: boolean,
};
@@ -15,13 +16,32 @@ const initialState: VersionReduxState = {
currentIsSupported: true,
latest: null,
latestStable: null,
+ nextUpgrade: null,
upToDate: true,
consistent: true,
};
-const checkIfLatest = (current: string, latest: ?string, latestStable: ?string): boolean => {
- return latest === null || latestStable === null || current === latest || current === latestStable;
-};
+function isBeta(version: string) {
+ return version.includes('-');
+}
+
+function nextUpgrade(current: string, latest: ?string, latestStable: ?string): ?string {
+ if (isBeta(current)) {
+ return current === latest ? null : latest;
+ } else {
+ return current === latestStable ? null : latestStable;
+ }
+}
+
+function checkIfLatest(current: string, latest: ?string, latestStable: ?string): boolean {
+ // perhaps -beta?
+ if (isBeta(current)) {
+ return current === latest || latest === null;
+ } else {
+ // must be stable
+ return current === latestStable || latestStable === null;
+ }
+}
export default function(
state: VersionReduxState = initialState,
@@ -38,6 +58,7 @@ export default function(
currentIsSupported,
latest,
latestStable,
+ nextUpgrade: nextUpgrade(state.current, latest, latestStable),
upToDate: checkIfLatest(state.current, latest, latestStable),
};
}
@@ -47,6 +68,7 @@ export default function(
...state,
current: action.version,
consistent: action.consistent,
+ nextUpgrade: nextUpgrade(action.version, state.latest, state.latestStable),
upToDate: checkIfLatest(action.version, state.latest, state.latestStable),
};