From 0662769696daa16c071943217fd1a2e94c135a26 Mon Sep 17 00:00:00 2001 From: Andrey Meshkov Date: Mon, 20 Jul 2020 17:29:13 +0300 Subject: [PATCH] Fix version change check --- client/src/actions/index.js | 4 +- client/src/helpers/helpers.js | 5 --- client/src/helpers/versionCompare.js | 63 ---------------------------- client/src/reducers/index.js | 3 +- 4 files changed, 3 insertions(+), 72 deletions(-) delete mode 100644 client/src/helpers/versionCompare.js diff --git a/client/src/actions/index.js b/client/src/actions/index.js index 3d3f1b63..8edffc08 100644 --- a/client/src/actions/index.js +++ b/client/src/actions/index.js @@ -2,7 +2,7 @@ import { createAction } from 'redux-actions'; import i18next from 'i18next'; import axios from 'axios'; -import { isVersionGreater, splitByNewLine, sortClients } from '../helpers/helpers'; +import { splitByNewLine, sortClients } from '../helpers/helpers'; import { CHECK_TIMEOUT, SETTINGS_NAMES } from '../helpers/constants'; import { getTlsStatus } from './encryption'; import apiClient from '../api/Api'; @@ -121,7 +121,7 @@ export const getVersion = (recheck = false) => async (dispatch, getState) => { const { dnsVersion } = getState().dashboard; const currentVersion = dnsVersion === 'undefined' ? 0 : dnsVersion; - if (data && isVersionGreater(currentVersion, data.new_version)) { + if (data && currentVersion !== data.new_version) { dispatch(addSuccessToast('updates_checked')); } else { dispatch(addSuccessToast('updates_version_equal')); diff --git a/client/src/helpers/helpers.js b/client/src/helpers/helpers.js index bd246609..b7bfd142 100644 --- a/client/src/helpers/helpers.js +++ b/client/src/helpers/helpers.js @@ -12,7 +12,6 @@ import i18n from 'i18next'; import uniqBy from 'lodash/uniqBy'; import ipaddr from 'ipaddr.js'; import queryString from 'query-string'; -import versionCompare from './versionCompare'; import { getTrackerData } from './trackers/trackers'; import { @@ -418,10 +417,6 @@ export const secondsToMilliseconds = (seconds) => { export const normalizeRulesTextarea = (text) => text?.replace(/^\n/g, '') .replace(/\n\s*\n/g, '\n'); -export const isVersionGreater = (currentVersion, previousVersion) => ( - versionCompare(currentVersion, previousVersion) === -1 -); - export const normalizeWhois = (whois) => { if (Object.keys(whois).length > 0) { const { diff --git a/client/src/helpers/versionCompare.js b/client/src/helpers/versionCompare.js deleted file mode 100644 index 913d3e11..00000000 --- a/client/src/helpers/versionCompare.js +++ /dev/null @@ -1,63 +0,0 @@ -/* -* Project: tiny-version-compare https://github.com/bfred-it/tiny-version-compare -* License (MIT) https://github.com/bfred-it/tiny-version-compare/blob/master/LICENSE -*/ -const split = (v) => String(v).replace(/^[vr]/, '') // Drop initial 'v' or 'r' - .replace(/([a-z]+)/gi, '.$1.') // Sort each word separately - .replace(/[-.]+/g, '.') // Consider dashes as separators (+ trim multiple separators) - .split('.'); - -// Development versions are considered "negative", -// but localeCompare doesn't handle negative numbers. -// This offset is applied to reset the lowest development version to 0 -const offset = (part) => { - // Not numeric, return as is - if (Number.isNaN(part)) { - return part; - } - return 5 + Number(part); -}; - -const parsePart = (part) => { - // Missing, consider it zero - if (typeof part === 'undefined') { - return 0; - } - // Sort development versions - switch (part.toLowerCase()) { - case 'dev': - return -5; - case 'alpha': - return -4; - case 'beta': - return -3; - case 'rc': - return -2; - case 'pre': - return -1; - default: - } - // Return as is, it’s either a plain number or text that will be sorted alphabetically - return part; -}; - -const versionCompare = (prev, next) => { - const a = split(prev); - const b = split(next); - for (let i = 0; i < a.length || i < b.length; i += 1) { - const ai = offset(parsePart(a[i])); - const bi = offset(parsePart(b[i])); - const sort = String(ai).localeCompare(bi, 'en', { - numeric: true, - }); - // Once the difference is found, - // stop comparing the rest of the parts - if (sort !== 0) { - return sort; - } - } - // No difference found - return 0; -}; - -export default versionCompare; diff --git a/client/src/reducers/index.js b/client/src/reducers/index.js index cc25a4b9..050ae116 100644 --- a/client/src/reducers/index.js +++ b/client/src/reducers/index.js @@ -2,7 +2,6 @@ import { combineReducers } from 'redux'; import { handleActions } from 'redux-actions'; import { loadingBarReducer } from 'react-redux-loading-bar'; import { reducer as formReducer } from 'redux-form'; -import { isVersionGreater } from '../helpers/helpers'; import * as actions from '../actions'; import toasts from './toasts'; @@ -82,7 +81,7 @@ const dashboard = handleActions( [actions.getVersionSuccess]: (state, { payload }) => { const currentVersion = state.dnsVersion === 'undefined' ? 0 : state.dnsVersion; - if (!payload.disabled && isVersionGreater(currentVersion, payload.new_version)) { + if (!payload.disabled && currentVersion !== payload.new_version) { const { announcement_url: announcementUrl, new_version: newVersion,