diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2018-10-09 02:51:32 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2018-10-10 15:19:48 +0200 |
| commit | af9462de67a86fc31e846e7b72f0420091106c8f (patch) | |
| tree | 11a00b57bac8dd0aa211fc0f7c891ffada6366a9 /gui | |
| parent | cad6b43564dc3e5816a2ce2e213756137af0f99e (diff) | |
| download | mullvadvpn-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.js | 28 |
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), }; |
