From f692d379b8e8305e98948e3fca1fdfe07e2165fc Mon Sep 17 00:00:00 2001 From: Gerzon Z Date: Thu, 18 Feb 2021 23:54:16 -0400 Subject: [PATCH 01/11] Simplify server version where needed --- app/lib/methods/getCustomEmojis.js | 3 ++- app/lib/methods/getPermissions.js | 3 ++- app/lib/methods/getUsersPresence.js | 7 ++++--- app/views/RoomInfoEditView/index.js | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/lib/methods/getCustomEmojis.js b/app/lib/methods/getCustomEmojis.js index 0037168dfba..1a97b9a984e 100644 --- a/app/lib/methods/getCustomEmojis.js +++ b/app/lib/methods/getCustomEmojis.js @@ -1,4 +1,5 @@ import { InteractionManager } from 'react-native'; +import { coerce } from 'semver'; import lt from 'semver/functions/lt'; import orderBy from 'lodash/orderBy'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; @@ -91,7 +92,7 @@ export function getCustomEmojis() { const updatedSince = await getUpdatedSince(allRecords); // if server version is lower than 0.75.0, fetches from old api - if (serverVersion && lt(serverVersion, '0.75.0')) { + if (serverVersion && lt(coerce(serverVersion), '0.75.0')) { // RC 0.61.0 const result = await this.sdk.get('emoji-custom'); diff --git a/app/lib/methods/getPermissions.js b/app/lib/methods/getPermissions.js index 249441582d6..fd252af24b9 100644 --- a/app/lib/methods/getPermissions.js +++ b/app/lib/methods/getPermissions.js @@ -1,4 +1,5 @@ import { InteractionManager } from 'react-native'; +import { coerce } from 'semver'; import lt from 'semver/functions/lt'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; import orderBy from 'lodash/orderBy'; @@ -79,7 +80,7 @@ export default function() { const allRecords = await permissionsCollection.query().fetch(); // if server version is lower than 0.73.0, fetches from old api - if (serverVersion && lt(serverVersion, '0.73.0')) { + if (serverVersion && lt(coerce(serverVersion), '0.73.0')) { // RC 0.66.0 const result = await this.sdk.get('permissions.list'); if (!result.success) { diff --git a/app/lib/methods/getUsersPresence.js b/app/lib/methods/getUsersPresence.js index 68d9b1eaa01..6363147aaf1 100644 --- a/app/lib/methods/getUsersPresence.js +++ b/app/lib/methods/getUsersPresence.js @@ -1,4 +1,5 @@ import { InteractionManager } from 'react-native'; +import { coerce } from 'semver'; import lt from 'semver/functions/lt'; import gte from 'semver/functions/gte'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; @@ -12,7 +13,7 @@ export function subscribeUsersPresence() { const serverVersion = reduxStore.getState().server.version; // if server is lower than 1.1.0 - if (serverVersion && lt(serverVersion, '1.1.0')) { + if (serverVersion && lt(coerce(serverVersion), '1.1.0')) { if (this.activeUsersSubTimeout) { clearTimeout(this.activeUsersSubTimeout); this.activeUsersSubTimeout = false; @@ -37,11 +38,11 @@ export default async function getUsersPresence() { const { user: loggedUser } = reduxStore.getState().login; // if server is greather than or equal 1.1.0 - if (serverVersion && gte(serverVersion, '1.1.0')) { + if (serverVersion && gte(coerce(serverVersion), '1.1.0')) { let params = {}; // if server is greather than or equal 3.0.0 - if (serverVersion && gte(serverVersion, '3.0.0')) { + if (serverVersion && gte(coerce(serverVersion), '3.0.0')) { // if not have any id if (!ids.length) { return; diff --git a/app/views/RoomInfoEditView/index.js b/app/views/RoomInfoEditView/index.js index 2669566eb52..8ab961f8191 100644 --- a/app/views/RoomInfoEditView/index.js +++ b/app/views/RoomInfoEditView/index.js @@ -549,7 +549,7 @@ class RoomInfoEditView extends React.Component { ] : null } - {serverVersion && !lt(serverVersion, '3.0.0') ? ( + {serverVersion && !lt(coerce(serverVersion), '3.0.0') ? ( Date: Fri, 19 Feb 2021 13:27:55 -0400 Subject: [PATCH 02/11] Added lte and gte functions and updated imports --- app/lib/methods/enterpriseModules.js | 5 ++--- app/lib/methods/getCustomEmojis.js | 5 ++--- app/lib/methods/getPermissions.js | 5 ++--- app/lib/methods/getUsersPresence.js | 10 ++++------ app/lib/rocketchat.js | 8 +++----- app/lib/utils.js | 6 ++++++ app/utils/avatar.js | 5 ++--- app/views/RoomActionsView/index.js | 5 ++--- app/views/RoomInfoEditView/index.js | 7 +++---- 9 files changed, 26 insertions(+), 30 deletions(-) diff --git a/app/lib/methods/enterpriseModules.js b/app/lib/methods/enterpriseModules.js index 5cb68e7a993..a9b80f941cc 100644 --- a/app/lib/methods/enterpriseModules.js +++ b/app/lib/methods/enterpriseModules.js @@ -1,5 +1,4 @@ -import gte from 'semver/functions/gte'; -import coerce from 'semver/functions/coerce'; +import { gte } from '../utils'; import reduxStore from '../createStore'; import database from '../database'; @@ -34,7 +33,7 @@ export function getEnterpriseModules() { return new Promise(async(resolve) => { try { const { version: serverVersion, server: serverId } = reduxStore.getState().server; - if (serverVersion && gte(coerce(serverVersion), '3.1.0')) { + if (serverVersion && gte(serverVersion, '3.1.0')) { // RC 3.1.0 const enterpriseModules = await this.methodCallWrapper('license:getModules'); if (enterpriseModules) { diff --git a/app/lib/methods/getCustomEmojis.js b/app/lib/methods/getCustomEmojis.js index 1a97b9a984e..2d546746479 100644 --- a/app/lib/methods/getCustomEmojis.js +++ b/app/lib/methods/getCustomEmojis.js @@ -1,9 +1,8 @@ import { InteractionManager } from 'react-native'; -import { coerce } from 'semver'; -import lt from 'semver/functions/lt'; import orderBy from 'lodash/orderBy'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; +import { lt } from '../utils'; import reduxStore from '../createStore'; import database from '../database'; import log from '../../utils/log'; @@ -92,7 +91,7 @@ export function getCustomEmojis() { const updatedSince = await getUpdatedSince(allRecords); // if server version is lower than 0.75.0, fetches from old api - if (serverVersion && lt(coerce(serverVersion), '0.75.0')) { + if (serverVersion && lt(serverVersion, '0.75.0')) { // RC 0.61.0 const result = await this.sdk.get('emoji-custom'); diff --git a/app/lib/methods/getPermissions.js b/app/lib/methods/getPermissions.js index fd252af24b9..46312625bc4 100644 --- a/app/lib/methods/getPermissions.js +++ b/app/lib/methods/getPermissions.js @@ -1,9 +1,8 @@ import { InteractionManager } from 'react-native'; -import { coerce } from 'semver'; -import lt from 'semver/functions/lt'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; import orderBy from 'lodash/orderBy'; +import { lt } from '../utils'; import database from '../database'; import log from '../../utils/log'; import reduxStore from '../createStore'; @@ -80,7 +79,7 @@ export default function() { const allRecords = await permissionsCollection.query().fetch(); // if server version is lower than 0.73.0, fetches from old api - if (serverVersion && lt(coerce(serverVersion), '0.73.0')) { + if (serverVersion && lt(serverVersion, '0.73.0')) { // RC 0.66.0 const result = await this.sdk.get('permissions.list'); if (!result.success) { diff --git a/app/lib/methods/getUsersPresence.js b/app/lib/methods/getUsersPresence.js index 6363147aaf1..e83e6a9f055 100644 --- a/app/lib/methods/getUsersPresence.js +++ b/app/lib/methods/getUsersPresence.js @@ -1,9 +1,7 @@ import { InteractionManager } from 'react-native'; -import { coerce } from 'semver'; -import lt from 'semver/functions/lt'; -import gte from 'semver/functions/gte'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; +import { lt, gte } from '../utils'; import reduxStore from '../createStore'; import { setActiveUsers } from '../../actions/activeUsers'; import { setUser } from '../../actions/login'; @@ -13,7 +11,7 @@ export function subscribeUsersPresence() { const serverVersion = reduxStore.getState().server.version; // if server is lower than 1.1.0 - if (serverVersion && lt(coerce(serverVersion), '1.1.0')) { + if (serverVersion && lt(serverVersion, '1.1.0')) { if (this.activeUsersSubTimeout) { clearTimeout(this.activeUsersSubTimeout); this.activeUsersSubTimeout = false; @@ -38,11 +36,11 @@ export default async function getUsersPresence() { const { user: loggedUser } = reduxStore.getState().login; // if server is greather than or equal 1.1.0 - if (serverVersion && gte(coerce(serverVersion), '1.1.0')) { + if (serverVersion && gte(serverVersion, '1.1.0')) { let params = {}; // if server is greather than or equal 3.0.0 - if (serverVersion && gte(coerce(serverVersion), '3.0.0')) { + if (gte(serverVersion, '3.0.0')) { // if not have any id if (!ids.length) { return; diff --git a/app/lib/rocketchat.js b/app/lib/rocketchat.js index 4f9952b8027..687b2fb52a0 100644 --- a/app/lib/rocketchat.js +++ b/app/lib/rocketchat.js @@ -1,7 +1,4 @@ import { InteractionManager } from 'react-native'; -import lt from 'semver/functions/lt'; -import gte from 'semver/functions/gte'; -import coerce from 'semver/functions/coerce'; import { Rocketchat as RocketchatClient, settings as RocketChatSettings @@ -11,6 +8,7 @@ import AsyncStorage from '@react-native-community/async-storage'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; import RNFetchBlob from 'rn-fetch-blob'; +import { gte, lt } from './utils'; import reduxStore from './createStore'; import defaultSettings from '../constants/settings'; import database from './database'; @@ -467,7 +465,7 @@ const RocketChat = { // Force normalized params for 2FA starting RC 3.9.0. const serverVersion = reduxStore.getState().server.version; - if (serverVersion && gte(coerce(serverVersion), '3.9.0')) { + if (serverVersion && gte(serverVersion, '3.9.0')) { const user = params.user ?? params.username; const password = params.password ?? params.ldapPass ?? params.crowdPassword; params = { user, password }; @@ -1374,7 +1372,7 @@ const RocketChat = { }, readThreads(tmid) { const serverVersion = reduxStore.getState().server.version; - if (serverVersion && gte(coerce(serverVersion), '3.4.0')) { + if (serverVersion && gte(serverVersion, '3.4.0')) { // RC 3.4.0 return this.methodCallWrapper('readThreads', tmid); } diff --git a/app/lib/utils.js b/app/lib/utils.js index 617501b2c45..ae5e1e76ffb 100644 --- a/app/lib/utils.js +++ b/app/lib/utils.js @@ -1,3 +1,5 @@ +import { lt as lowerThan, gte as greaterThan, coerce } from 'semver'; + export const formatAttachmentUrl = (attachmentUrl, userId, token, server) => { if (attachmentUrl.startsWith('http')) { if (attachmentUrl.includes('rc_token')) { @@ -7,3 +9,7 @@ export const formatAttachmentUrl = (attachmentUrl, userId, token, server) => { } return encodeURI(`${ server }${ attachmentUrl }?rc_uid=${ userId }&rc_token=${ token }`); }; + +export const lt = (currentServerVersion, oldServerVersion) => lowerThan(coerce(currentServerVersion), oldServerVersion); + +export const gte = (currentServerVersion, oldServerVersion) => greaterThan(coerce(currentServerVersion), oldServerVersion); diff --git a/app/utils/avatar.js b/app/utils/avatar.js index 64f6e951a82..63eda4f0576 100644 --- a/app/utils/avatar.js +++ b/app/utils/avatar.js @@ -1,5 +1,4 @@ -import lt from 'semver/functions/lt'; -import coerce from 'semver/functions/coerce'; +import { lt } from '../lib/utils'; const formatUrl = (url, size, query) => `${ url }?format=png&size=${ size }${ query }`; @@ -9,7 +8,7 @@ export const avatarURL = ({ let room; if (type === 'd') { room = text; - } else if (rid && !(serverVersion && lt(coerce(serverVersion), '3.6.0'))) { + } else if (rid && !(serverVersion && lt(serverVersion, '3.6.0'))) { room = `room/${ rid }`; } else { room = `@${ text }`; diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index 43e58a901b6..0cae2c3c1a0 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -5,8 +5,7 @@ import { } from 'react-native'; import { connect } from 'react-redux'; import isEmpty from 'lodash/isEmpty'; -import lt from 'semver/functions/lt'; -import coerce from 'semver/functions/coerce'; +import { lt } from '../../lib/utils'; import Touch from '../../utils/touch'; import { setLoading as setLoadingAction } from '../../actions/selectedUsers'; @@ -252,7 +251,7 @@ class RoomActionsView extends React.Component { const { encrypted } = room; const { serverVersion } = this.props; let hasPermission = false; - if (serverVersion && lt(coerce(serverVersion), '3.11.0')) { + if (serverVersion && lt(serverVersion, '3.11.0')) { hasPermission = canEdit; } else { hasPermission = canToggleEncryption; diff --git a/app/views/RoomInfoEditView/index.js b/app/views/RoomInfoEditView/index.js index 8ab961f8191..8282d7be8b1 100644 --- a/app/views/RoomInfoEditView/index.js +++ b/app/views/RoomInfoEditView/index.js @@ -9,8 +9,7 @@ import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit'; import ImagePicker from 'react-native-image-crop-picker'; import isEqual from 'lodash/isEqual'; import isEmpty from 'lodash/isEmpty'; -import lt from 'semver/functions/lt'; -import coerce from 'semver/functions/coerce'; +import { lt } from '../../lib/utils'; import database from '../../lib/database'; @@ -409,7 +408,7 @@ class RoomInfoEditView extends React.Component { isServerVersionLowerThan = (version) => { const { serverVersion } = this.props; - return serverVersion && lt(coerce(serverVersion), version); + return serverVersion && lt(serverVersion, version); } render() { @@ -549,7 +548,7 @@ class RoomInfoEditView extends React.Component { ] : null } - {serverVersion && !lt(coerce(serverVersion), '3.0.0') ? ( + {serverVersion && !lt(serverVersion, '3.0.0') ? ( Date: Fri, 19 Feb 2021 14:13:18 -0400 Subject: [PATCH 03/11] Updated functions names --- app/lib/methods/enterpriseModules.js | 4 ++-- app/lib/methods/getCustomEmojis.js | 4 ++-- app/lib/methods/getPermissions.js | 4 ++-- app/lib/methods/getUsersPresence.js | 8 ++++---- app/lib/rocketchat.js | 8 ++++---- app/lib/utils.js | 6 +++--- app/utils/avatar.js | 4 ++-- app/views/RoomActionsView/index.js | 4 ++-- app/views/RoomInfoEditView/index.js | 6 +++--- 9 files changed, 24 insertions(+), 24 deletions(-) diff --git a/app/lib/methods/enterpriseModules.js b/app/lib/methods/enterpriseModules.js index a9b80f941cc..abd31b5a61b 100644 --- a/app/lib/methods/enterpriseModules.js +++ b/app/lib/methods/enterpriseModules.js @@ -1,4 +1,4 @@ -import { gte } from '../utils'; +import { isServerVersionGreaterThan } from '../utils'; import reduxStore from '../createStore'; import database from '../database'; @@ -33,7 +33,7 @@ export function getEnterpriseModules() { return new Promise(async(resolve) => { try { const { version: serverVersion, server: serverId } = reduxStore.getState().server; - if (serverVersion && gte(serverVersion, '3.1.0')) { + if (serverVersion && isServerVersionGreaterThan(serverVersion, '3.1.0')) { // RC 3.1.0 const enterpriseModules = await this.methodCallWrapper('license:getModules'); if (enterpriseModules) { diff --git a/app/lib/methods/getCustomEmojis.js b/app/lib/methods/getCustomEmojis.js index 2d546746479..66c4474b578 100644 --- a/app/lib/methods/getCustomEmojis.js +++ b/app/lib/methods/getCustomEmojis.js @@ -2,7 +2,7 @@ import { InteractionManager } from 'react-native'; import orderBy from 'lodash/orderBy'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; -import { lt } from '../utils'; +import { isServerVersionLowerThan } from '../utils'; import reduxStore from '../createStore'; import database from '../database'; import log from '../../utils/log'; @@ -91,7 +91,7 @@ export function getCustomEmojis() { const updatedSince = await getUpdatedSince(allRecords); // if server version is lower than 0.75.0, fetches from old api - if (serverVersion && lt(serverVersion, '0.75.0')) { + if (serverVersion && isServerVersionLowerThan(serverVersion, '0.75.0')) { // RC 0.61.0 const result = await this.sdk.get('emoji-custom'); diff --git a/app/lib/methods/getPermissions.js b/app/lib/methods/getPermissions.js index 46312625bc4..0096a96923f 100644 --- a/app/lib/methods/getPermissions.js +++ b/app/lib/methods/getPermissions.js @@ -2,7 +2,7 @@ import { InteractionManager } from 'react-native'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; import orderBy from 'lodash/orderBy'; -import { lt } from '../utils'; +import { isServerVersionLowerThan } from '../utils'; import database from '../database'; import log from '../../utils/log'; import reduxStore from '../createStore'; @@ -79,7 +79,7 @@ export default function() { const allRecords = await permissionsCollection.query().fetch(); // if server version is lower than 0.73.0, fetches from old api - if (serverVersion && lt(serverVersion, '0.73.0')) { + if (serverVersion && isServerVersionLowerThan(serverVersion, '0.73.0')) { // RC 0.66.0 const result = await this.sdk.get('permissions.list'); if (!result.success) { diff --git a/app/lib/methods/getUsersPresence.js b/app/lib/methods/getUsersPresence.js index e83e6a9f055..691ae36e3ca 100644 --- a/app/lib/methods/getUsersPresence.js +++ b/app/lib/methods/getUsersPresence.js @@ -1,7 +1,7 @@ import { InteractionManager } from 'react-native'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; -import { lt, gte } from '../utils'; +import { isServerVersionLowerThan, isServerVersionGreaterThan } from '../utils'; import reduxStore from '../createStore'; import { setActiveUsers } from '../../actions/activeUsers'; import { setUser } from '../../actions/login'; @@ -11,7 +11,7 @@ export function subscribeUsersPresence() { const serverVersion = reduxStore.getState().server.version; // if server is lower than 1.1.0 - if (serverVersion && lt(serverVersion, '1.1.0')) { + if (serverVersion && isServerVersionLowerThan(serverVersion, '1.1.0')) { if (this.activeUsersSubTimeout) { clearTimeout(this.activeUsersSubTimeout); this.activeUsersSubTimeout = false; @@ -36,11 +36,11 @@ export default async function getUsersPresence() { const { user: loggedUser } = reduxStore.getState().login; // if server is greather than or equal 1.1.0 - if (serverVersion && gte(serverVersion, '1.1.0')) { + if (serverVersion && isServerVersionGreaterThan(serverVersion, '1.1.0')) { let params = {}; // if server is greather than or equal 3.0.0 - if (gte(serverVersion, '3.0.0')) { + if (isServerVersionGreaterThan(serverVersion, '3.0.0')) { // if not have any id if (!ids.length) { return; diff --git a/app/lib/rocketchat.js b/app/lib/rocketchat.js index 687b2fb52a0..b8a3a68e1c3 100644 --- a/app/lib/rocketchat.js +++ b/app/lib/rocketchat.js @@ -8,7 +8,7 @@ import AsyncStorage from '@react-native-community/async-storage'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; import RNFetchBlob from 'rn-fetch-blob'; -import { gte, lt } from './utils'; +import { isServerVersionGreaterThan, isServerVersionLowerThan } from './utils'; import reduxStore from './createStore'; import defaultSettings from '../constants/settings'; import database from './database'; @@ -132,7 +132,7 @@ const RocketChat = { message: I18n.t('Not_RC_Server', { contact: I18n.t('Contact_your_server_admin') }) }; } - if (lt(jsonRes.version, MIN_ROCKETCHAT_VERSION)) { + if (isServerVersionLowerThan(jsonRes.version, MIN_ROCKETCHAT_VERSION)) { return { success: false, message: I18n.t('Invalid_server_version', { @@ -465,7 +465,7 @@ const RocketChat = { // Force normalized params for 2FA starting RC 3.9.0. const serverVersion = reduxStore.getState().server.version; - if (serverVersion && gte(serverVersion, '3.9.0')) { + if (serverVersion && isServerVersionGreaterThan(serverVersion, '3.9.0')) { const user = params.user ?? params.username; const password = params.password ?? params.ldapPass ?? params.crowdPassword; params = { user, password }; @@ -1372,7 +1372,7 @@ const RocketChat = { }, readThreads(tmid) { const serverVersion = reduxStore.getState().server.version; - if (serverVersion && gte(serverVersion, '3.4.0')) { + if (serverVersion && isServerVersionGreaterThan(serverVersion, '3.4.0')) { // RC 3.4.0 return this.methodCallWrapper('readThreads', tmid); } diff --git a/app/lib/utils.js b/app/lib/utils.js index ae5e1e76ffb..604a2d2c3c2 100644 --- a/app/lib/utils.js +++ b/app/lib/utils.js @@ -1,4 +1,4 @@ -import { lt as lowerThan, gte as greaterThan, coerce } from 'semver'; +import { lt, gte, coerce } from 'semver'; export const formatAttachmentUrl = (attachmentUrl, userId, token, server) => { if (attachmentUrl.startsWith('http')) { @@ -10,6 +10,6 @@ export const formatAttachmentUrl = (attachmentUrl, userId, token, server) => { return encodeURI(`${ server }${ attachmentUrl }?rc_uid=${ userId }&rc_token=${ token }`); }; -export const lt = (currentServerVersion, oldServerVersion) => lowerThan(coerce(currentServerVersion), oldServerVersion); +export const isServerVersionLowerThan = (currentServerVersion, oldServerVersion) => lt(coerce(currentServerVersion), oldServerVersion); -export const gte = (currentServerVersion, oldServerVersion) => greaterThan(coerce(currentServerVersion), oldServerVersion); +export const isServerVersionGreaterThan = (currentServerVersion, oldServerVersion) => gte(coerce(currentServerVersion), oldServerVersion); diff --git a/app/utils/avatar.js b/app/utils/avatar.js index 63eda4f0576..ffa0acaaebf 100644 --- a/app/utils/avatar.js +++ b/app/utils/avatar.js @@ -1,4 +1,4 @@ -import { lt } from '../lib/utils'; +import { isServerVersionLowerThan } from '../lib/utils'; const formatUrl = (url, size, query) => `${ url }?format=png&size=${ size }${ query }`; @@ -8,7 +8,7 @@ export const avatarURL = ({ let room; if (type === 'd') { room = text; - } else if (rid && !(serverVersion && lt(serverVersion, '3.6.0'))) { + } else if (rid && !(serverVersion && isServerVersionLowerThan(serverVersion, '3.6.0'))) { room = `room/${ rid }`; } else { room = `@${ text }`; diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index 0cae2c3c1a0..56b6c2c9db4 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -5,7 +5,7 @@ import { } from 'react-native'; import { connect } from 'react-redux'; import isEmpty from 'lodash/isEmpty'; -import { lt } from '../../lib/utils'; +import { isServerVersionLowerThan } from '../../lib/utils'; import Touch from '../../utils/touch'; import { setLoading as setLoadingAction } from '../../actions/selectedUsers'; @@ -251,7 +251,7 @@ class RoomActionsView extends React.Component { const { encrypted } = room; const { serverVersion } = this.props; let hasPermission = false; - if (serverVersion && lt(serverVersion, '3.11.0')) { + if (serverVersion && isServerVersionLowerThan(serverVersion, '3.11.0')) { hasPermission = canEdit; } else { hasPermission = canToggleEncryption; diff --git a/app/views/RoomInfoEditView/index.js b/app/views/RoomInfoEditView/index.js index 8282d7be8b1..3e2fd057e58 100644 --- a/app/views/RoomInfoEditView/index.js +++ b/app/views/RoomInfoEditView/index.js @@ -9,7 +9,7 @@ import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit'; import ImagePicker from 'react-native-image-crop-picker'; import isEqual from 'lodash/isEqual'; import isEmpty from 'lodash/isEmpty'; -import { lt } from '../../lib/utils'; +import { isServerVersionLowerThan } from '../../lib/utils'; import database from '../../lib/database'; @@ -408,7 +408,7 @@ class RoomInfoEditView extends React.Component { isServerVersionLowerThan = (version) => { const { serverVersion } = this.props; - return serverVersion && lt(serverVersion, version); + return serverVersion && isServerVersionLowerThan(serverVersion, version); } render() { @@ -548,7 +548,7 @@ class RoomInfoEditView extends React.Component { ] : null } - {serverVersion && !lt(serverVersion, '3.0.0') ? ( + {serverVersion && !isServerVersionLowerThan(serverVersion, '3.0.0') ? ( Date: Sat, 20 Feb 2021 00:35:24 -0400 Subject: [PATCH 04/11] Update util functions --- app/lib/methods/enterpriseModules.js | 2 +- app/lib/methods/getCustomEmojis.js | 2 +- app/lib/methods/getPermissions.js | 2 +- app/lib/methods/getUsersPresence.js | 4 ++-- app/lib/rocketchat.js | 4 ++-- app/lib/utils.js | 4 ++-- app/utils/avatar.js | 2 +- app/views/RoomActionsView/index.js | 2 +- app/views/RoomInfoEditView/index.js | 11 +++-------- 9 files changed, 14 insertions(+), 19 deletions(-) diff --git a/app/lib/methods/enterpriseModules.js b/app/lib/methods/enterpriseModules.js index abd31b5a61b..ceb287b4e39 100644 --- a/app/lib/methods/enterpriseModules.js +++ b/app/lib/methods/enterpriseModules.js @@ -33,7 +33,7 @@ export function getEnterpriseModules() { return new Promise(async(resolve) => { try { const { version: serverVersion, server: serverId } = reduxStore.getState().server; - if (serverVersion && isServerVersionGreaterThan(serverVersion, '3.1.0')) { + if (isServerVersionGreaterThan(serverVersion, '3.1.0')) { // RC 3.1.0 const enterpriseModules = await this.methodCallWrapper('license:getModules'); if (enterpriseModules) { diff --git a/app/lib/methods/getCustomEmojis.js b/app/lib/methods/getCustomEmojis.js index 66c4474b578..45af7eff262 100644 --- a/app/lib/methods/getCustomEmojis.js +++ b/app/lib/methods/getCustomEmojis.js @@ -91,7 +91,7 @@ export function getCustomEmojis() { const updatedSince = await getUpdatedSince(allRecords); // if server version is lower than 0.75.0, fetches from old api - if (serverVersion && isServerVersionLowerThan(serverVersion, '0.75.0')) { + if (isServerVersionLowerThan(serverVersion, '0.75.0')) { // RC 0.61.0 const result = await this.sdk.get('emoji-custom'); diff --git a/app/lib/methods/getPermissions.js b/app/lib/methods/getPermissions.js index 0096a96923f..9491df5808a 100644 --- a/app/lib/methods/getPermissions.js +++ b/app/lib/methods/getPermissions.js @@ -79,7 +79,7 @@ export default function() { const allRecords = await permissionsCollection.query().fetch(); // if server version is lower than 0.73.0, fetches from old api - if (serverVersion && isServerVersionLowerThan(serverVersion, '0.73.0')) { + if (isServerVersionLowerThan(serverVersion, '0.73.0')) { // RC 0.66.0 const result = await this.sdk.get('permissions.list'); if (!result.success) { diff --git a/app/lib/methods/getUsersPresence.js b/app/lib/methods/getUsersPresence.js index 691ae36e3ca..91d8ddad3e0 100644 --- a/app/lib/methods/getUsersPresence.js +++ b/app/lib/methods/getUsersPresence.js @@ -11,7 +11,7 @@ export function subscribeUsersPresence() { const serverVersion = reduxStore.getState().server.version; // if server is lower than 1.1.0 - if (serverVersion && isServerVersionLowerThan(serverVersion, '1.1.0')) { + if (isServerVersionLowerThan(serverVersion, '1.1.0')) { if (this.activeUsersSubTimeout) { clearTimeout(this.activeUsersSubTimeout); this.activeUsersSubTimeout = false; @@ -36,7 +36,7 @@ export default async function getUsersPresence() { const { user: loggedUser } = reduxStore.getState().login; // if server is greather than or equal 1.1.0 - if (serverVersion && isServerVersionGreaterThan(serverVersion, '1.1.0')) { + if (isServerVersionGreaterThan(serverVersion, '1.1.0')) { let params = {}; // if server is greather than or equal 3.0.0 diff --git a/app/lib/rocketchat.js b/app/lib/rocketchat.js index b8a3a68e1c3..40bee576329 100644 --- a/app/lib/rocketchat.js +++ b/app/lib/rocketchat.js @@ -465,7 +465,7 @@ const RocketChat = { // Force normalized params for 2FA starting RC 3.9.0. const serverVersion = reduxStore.getState().server.version; - if (serverVersion && isServerVersionGreaterThan(serverVersion, '3.9.0')) { + if (isServerVersionGreaterThan(serverVersion, '3.9.0')) { const user = params.user ?? params.username; const password = params.password ?? params.ldapPass ?? params.crowdPassword; params = { user, password }; @@ -1372,7 +1372,7 @@ const RocketChat = { }, readThreads(tmid) { const serverVersion = reduxStore.getState().server.version; - if (serverVersion && isServerVersionGreaterThan(serverVersion, '3.4.0')) { + if (isServerVersionGreaterThan(serverVersion, '3.4.0')) { // RC 3.4.0 return this.methodCallWrapper('readThreads', tmid); } diff --git a/app/lib/utils.js b/app/lib/utils.js index 604a2d2c3c2..f4877258b29 100644 --- a/app/lib/utils.js +++ b/app/lib/utils.js @@ -10,6 +10,6 @@ export const formatAttachmentUrl = (attachmentUrl, userId, token, server) => { return encodeURI(`${ server }${ attachmentUrl }?rc_uid=${ userId }&rc_token=${ token }`); }; -export const isServerVersionLowerThan = (currentServerVersion, oldServerVersion) => lt(coerce(currentServerVersion), oldServerVersion); +export const isServerVersionLowerThan = (currentServerVersion, oldServerVersion) => currentServerVersion && lt(coerce(currentServerVersion), oldServerVersion); -export const isServerVersionGreaterThan = (currentServerVersion, oldServerVersion) => gte(coerce(currentServerVersion), oldServerVersion); +export const isServerVersionGreaterThan = (currentServerVersion, oldServerVersion) => currentServerVersion && gte(coerce(currentServerVersion), oldServerVersion); diff --git a/app/utils/avatar.js b/app/utils/avatar.js index ffa0acaaebf..cce51d307b6 100644 --- a/app/utils/avatar.js +++ b/app/utils/avatar.js @@ -8,7 +8,7 @@ export const avatarURL = ({ let room; if (type === 'd') { room = text; - } else if (rid && !(serverVersion && isServerVersionLowerThan(serverVersion, '3.6.0'))) { + } else if (rid && !(isServerVersionLowerThan(serverVersion, '3.6.0'))) { room = `room/${ rid }`; } else { room = `@${ text }`; diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index 56b6c2c9db4..abde0db9917 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -251,7 +251,7 @@ class RoomActionsView extends React.Component { const { encrypted } = room; const { serverVersion } = this.props; let hasPermission = false; - if (serverVersion && isServerVersionLowerThan(serverVersion, '3.11.0')) { + if (isServerVersionLowerThan(serverVersion, '3.11.0')) { hasPermission = canEdit; } else { hasPermission = canToggleEncryption; diff --git a/app/views/RoomInfoEditView/index.js b/app/views/RoomInfoEditView/index.js index 3e2fd057e58..f6fa1ee3e3e 100644 --- a/app/views/RoomInfoEditView/index.js +++ b/app/views/RoomInfoEditView/index.js @@ -406,11 +406,6 @@ class RoomInfoEditView extends React.Component { this.setState({ encrypted: value }); } - isServerVersionLowerThan = (version) => { - const { serverVersion } = this.props; - return serverVersion && isServerVersionLowerThan(serverVersion, version); - } - render() { const { name, nameError, description, topic, announcement, t, ro, reactWhenReadOnly, room, joinCode, saving, permissions, archived, enableSysMes, encrypted, avatar @@ -437,7 +432,7 @@ class RoomInfoEditView extends React.Component { - {this.isServerVersionLowerThan('3.6.0') + {isServerVersionLowerThan(serverVersion, '3.6.0') ? null : ( @@ -548,7 +543,7 @@ class RoomInfoEditView extends React.Component { ] : null } - {serverVersion && !isServerVersionLowerThan(serverVersion, '3.0.0') ? ( + {!isServerVersionLowerThan(serverVersion, '3.0.0') ? ( Date: Thu, 25 Feb 2021 12:52:46 -0400 Subject: [PATCH 05/11] Update util function and added methods --- app/lib/methods/enterpriseModules.js | 4 ++-- app/lib/methods/getCustomEmojis.js | 4 ++-- app/lib/methods/getPermissions.js | 4 ++-- app/lib/methods/getUsersPresence.js | 8 ++++---- app/lib/rocketchat.js | 8 ++++---- app/lib/utils.js | 11 ++++++++--- app/utils/avatar.js | 4 ++-- app/views/RoomActionsView/index.js | 4 ++-- app/views/RoomInfoEditView/index.js | 8 ++++---- 9 files changed, 30 insertions(+), 25 deletions(-) diff --git a/app/lib/methods/enterpriseModules.js b/app/lib/methods/enterpriseModules.js index ceb287b4e39..82093ca6708 100644 --- a/app/lib/methods/enterpriseModules.js +++ b/app/lib/methods/enterpriseModules.js @@ -1,4 +1,4 @@ -import { isServerVersionGreaterThan } from '../utils'; +import { compareServerVersion, methods } from '../utils'; import reduxStore from '../createStore'; import database from '../database'; @@ -33,7 +33,7 @@ export function getEnterpriseModules() { return new Promise(async(resolve) => { try { const { version: serverVersion, server: serverId } = reduxStore.getState().server; - if (isServerVersionGreaterThan(serverVersion, '3.1.0')) { + if (compareServerVersion(serverVersion, '3.1.0', methods.greaterThanOrEqualTo)) { // RC 3.1.0 const enterpriseModules = await this.methodCallWrapper('license:getModules'); if (enterpriseModules) { diff --git a/app/lib/methods/getCustomEmojis.js b/app/lib/methods/getCustomEmojis.js index 45af7eff262..5f92db3d685 100644 --- a/app/lib/methods/getCustomEmojis.js +++ b/app/lib/methods/getCustomEmojis.js @@ -2,7 +2,7 @@ import { InteractionManager } from 'react-native'; import orderBy from 'lodash/orderBy'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; -import { isServerVersionLowerThan } from '../utils'; +import { compareServerVersion, methods } from '../utils'; import reduxStore from '../createStore'; import database from '../database'; import log from '../../utils/log'; @@ -91,7 +91,7 @@ export function getCustomEmojis() { const updatedSince = await getUpdatedSince(allRecords); // if server version is lower than 0.75.0, fetches from old api - if (isServerVersionLowerThan(serverVersion, '0.75.0')) { + if (compareServerVersion(serverVersion, '0.75.0', methods.lowerThan)) { // RC 0.61.0 const result = await this.sdk.get('emoji-custom'); diff --git a/app/lib/methods/getPermissions.js b/app/lib/methods/getPermissions.js index 9491df5808a..a102e216079 100644 --- a/app/lib/methods/getPermissions.js +++ b/app/lib/methods/getPermissions.js @@ -2,7 +2,7 @@ import { InteractionManager } from 'react-native'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; import orderBy from 'lodash/orderBy'; -import { isServerVersionLowerThan } from '../utils'; +import { compareServerVersion, methods } from '../utils'; import database from '../database'; import log from '../../utils/log'; import reduxStore from '../createStore'; @@ -79,7 +79,7 @@ export default function() { const allRecords = await permissionsCollection.query().fetch(); // if server version is lower than 0.73.0, fetches from old api - if (isServerVersionLowerThan(serverVersion, '0.73.0')) { + if (compareServerVersion(serverVersion, '0.73.0', methods.lowerThan)) { // RC 0.66.0 const result = await this.sdk.get('permissions.list'); if (!result.success) { diff --git a/app/lib/methods/getUsersPresence.js b/app/lib/methods/getUsersPresence.js index 91d8ddad3e0..0b6a4ef010a 100644 --- a/app/lib/methods/getUsersPresence.js +++ b/app/lib/methods/getUsersPresence.js @@ -1,7 +1,7 @@ import { InteractionManager } from 'react-native'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; -import { isServerVersionLowerThan, isServerVersionGreaterThan } from '../utils'; +import { compareServerVersion, methods } from '../utils'; import reduxStore from '../createStore'; import { setActiveUsers } from '../../actions/activeUsers'; import { setUser } from '../../actions/login'; @@ -11,7 +11,7 @@ export function subscribeUsersPresence() { const serverVersion = reduxStore.getState().server.version; // if server is lower than 1.1.0 - if (isServerVersionLowerThan(serverVersion, '1.1.0')) { + if (compareServerVersion(serverVersion, '1.1.0', methods.lowerThan)) { if (this.activeUsersSubTimeout) { clearTimeout(this.activeUsersSubTimeout); this.activeUsersSubTimeout = false; @@ -36,11 +36,11 @@ export default async function getUsersPresence() { const { user: loggedUser } = reduxStore.getState().login; // if server is greather than or equal 1.1.0 - if (isServerVersionGreaterThan(serverVersion, '1.1.0')) { + if (compareServerVersion(serverVersion, '1.1.0', methods.greaterThanOrEqualTo)) { let params = {}; // if server is greather than or equal 3.0.0 - if (isServerVersionGreaterThan(serverVersion, '3.0.0')) { + if (compareServerVersion(serverVersion, '3.0.0', methods.greaterThanOrEqualTo)) { // if not have any id if (!ids.length) { return; diff --git a/app/lib/rocketchat.js b/app/lib/rocketchat.js index 40bee576329..6ec047df582 100644 --- a/app/lib/rocketchat.js +++ b/app/lib/rocketchat.js @@ -8,7 +8,7 @@ import AsyncStorage from '@react-native-community/async-storage'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; import RNFetchBlob from 'rn-fetch-blob'; -import { isServerVersionGreaterThan, isServerVersionLowerThan } from './utils'; +import { compareServerVersion, methods } from './utils'; import reduxStore from './createStore'; import defaultSettings from '../constants/settings'; import database from './database'; @@ -132,7 +132,7 @@ const RocketChat = { message: I18n.t('Not_RC_Server', { contact: I18n.t('Contact_your_server_admin') }) }; } - if (isServerVersionLowerThan(jsonRes.version, MIN_ROCKETCHAT_VERSION)) { + if (compareServerVersion(jsonRes.version, MIN_ROCKETCHAT_VERSION, methods.lowerThan)) { return { success: false, message: I18n.t('Invalid_server_version', { @@ -465,7 +465,7 @@ const RocketChat = { // Force normalized params for 2FA starting RC 3.9.0. const serverVersion = reduxStore.getState().server.version; - if (isServerVersionGreaterThan(serverVersion, '3.9.0')) { + if (compareServerVersion(serverVersion, '3.9.0', methods.greaterThanOrEqualTo)) { const user = params.user ?? params.username; const password = params.password ?? params.ldapPass ?? params.crowdPassword; params = { user, password }; @@ -1372,7 +1372,7 @@ const RocketChat = { }, readThreads(tmid) { const serverVersion = reduxStore.getState().server.version; - if (isServerVersionGreaterThan(serverVersion, '3.4.0')) { + if (compareServerVersion(serverVersion, '3.4.0', methods.greaterThanOrEqualTo)) { // RC 3.4.0 return this.methodCallWrapper('readThreads', tmid); } diff --git a/app/lib/utils.js b/app/lib/utils.js index f4877258b29..014519829ec 100644 --- a/app/lib/utils.js +++ b/app/lib/utils.js @@ -1,4 +1,4 @@ -import { lt, gte, coerce } from 'semver'; +import { lt, lte, gt, gte, coerce } from 'semver'; export const formatAttachmentUrl = (attachmentUrl, userId, token, server) => { if (attachmentUrl.startsWith('http')) { @@ -10,6 +10,11 @@ export const formatAttachmentUrl = (attachmentUrl, userId, token, server) => { return encodeURI(`${ server }${ attachmentUrl }?rc_uid=${ userId }&rc_token=${ token }`); }; -export const isServerVersionLowerThan = (currentServerVersion, oldServerVersion) => currentServerVersion && lt(coerce(currentServerVersion), oldServerVersion); +export const methods = { + lowerThan: lt, + lowerThanOrEqualTo: lte, + greaterThan: gt, + greaterThanOrEqualTo: gte +}; -export const isServerVersionGreaterThan = (currentServerVersion, oldServerVersion) => currentServerVersion && gte(coerce(currentServerVersion), oldServerVersion); +export const compareServerVersion = (currentServerVersion, versionToCompare, func) => currentServerVersion && func(coerce(currentServerVersion), versionToCompare); \ No newline at end of file diff --git a/app/utils/avatar.js b/app/utils/avatar.js index cce51d307b6..c0b4e2db928 100644 --- a/app/utils/avatar.js +++ b/app/utils/avatar.js @@ -1,4 +1,4 @@ -import { isServerVersionLowerThan } from '../lib/utils'; +import { compareServerVersion, methods } from '../lib/utils'; const formatUrl = (url, size, query) => `${ url }?format=png&size=${ size }${ query }`; @@ -8,7 +8,7 @@ export const avatarURL = ({ let room; if (type === 'd') { room = text; - } else if (rid && !(isServerVersionLowerThan(serverVersion, '3.6.0'))) { + } else if (rid && !(compareServerVersion(serverVersion, '3.6.0', methods.lowerThan))) { room = `room/${ rid }`; } else { room = `@${ text }`; diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index abde0db9917..ce2c3bc003e 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -5,7 +5,7 @@ import { } from 'react-native'; import { connect } from 'react-redux'; import isEmpty from 'lodash/isEmpty'; -import { isServerVersionLowerThan } from '../../lib/utils'; +import { compareServerVersion, methods } from '../../lib/utils'; import Touch from '../../utils/touch'; import { setLoading as setLoadingAction } from '../../actions/selectedUsers'; @@ -251,7 +251,7 @@ class RoomActionsView extends React.Component { const { encrypted } = room; const { serverVersion } = this.props; let hasPermission = false; - if (isServerVersionLowerThan(serverVersion, '3.11.0')) { + if (compareServerVersion(serverVersion, '3.11.0', methods.lowerThan)) { hasPermission = canEdit; } else { hasPermission = canToggleEncryption; diff --git a/app/views/RoomInfoEditView/index.js b/app/views/RoomInfoEditView/index.js index f6fa1ee3e3e..20381a1d29b 100644 --- a/app/views/RoomInfoEditView/index.js +++ b/app/views/RoomInfoEditView/index.js @@ -9,7 +9,7 @@ import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit'; import ImagePicker from 'react-native-image-crop-picker'; import isEqual from 'lodash/isEqual'; import isEmpty from 'lodash/isEmpty'; -import { isServerVersionLowerThan } from '../../lib/utils'; +import { compareServerVersion, methods } from '../../lib/utils'; import database from '../../lib/database'; @@ -432,7 +432,7 @@ class RoomInfoEditView extends React.Component { - {isServerVersionLowerThan(serverVersion, '3.6.0') + {compareServerVersion(serverVersion, '3.6.0', methods.lowerThan) ? null : ( @@ -543,7 +543,7 @@ class RoomInfoEditView extends React.Component { ] : null } - {!isServerVersionLowerThan(serverVersion, '3.0.0') ? ( + {!compareServerVersion(serverVersion, '3.0.0', methods.lowerThan) ? ( Date: Fri, 26 Feb 2021 14:54:23 -0400 Subject: [PATCH 06/11] Remove lt and coerce from getPermissions and mergeSubscriptionsRooms --- app/lib/methods/getPermissions.js | 3 +-- app/lib/methods/helpers/mergeSubscriptionsRooms.js | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/lib/methods/getPermissions.js b/app/lib/methods/getPermissions.js index 91732b425bc..a2dbccc6a68 100644 --- a/app/lib/methods/getPermissions.js +++ b/app/lib/methods/getPermissions.js @@ -1,4 +1,3 @@ -import lt from 'semver/functions/lt'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; import { Q } from '@nozbe/watermelondb'; import coerce from 'semver/functions/coerce'; @@ -124,7 +123,7 @@ export function getPermissions() { const allRecords = await permissionsCollection.query().fetch(); // if server version is lower than 0.73.0, fetches from old api - if (serverVersion && lt(coerce(serverVersion), '0.73.0')) { + if (serverVersion && compareServerVersion(serverVersion, '0.73.0', methods.lowerThan)) { // RC 0.66.0 const result = await this.sdk.get('permissions.list'); if (!result.success) { diff --git a/app/lib/methods/helpers/mergeSubscriptionsRooms.js b/app/lib/methods/helpers/mergeSubscriptionsRooms.js index 1e5afa3b216..f1f5aca2970 100644 --- a/app/lib/methods/helpers/mergeSubscriptionsRooms.js +++ b/app/lib/methods/helpers/mergeSubscriptionsRooms.js @@ -1,10 +1,10 @@ import EJSON from 'ejson'; -import { lt, coerce } from 'semver'; import normalizeMessage from './normalizeMessage'; import findSubscriptionsRooms from './findSubscriptionsRooms'; import { Encryption } from '../../encryption'; import reduxStore from '../../createStore'; +import { compareServerVersion, methods } from '../../utils'; // TODO: delete and update export const merge = (subscription, room) => { @@ -28,7 +28,7 @@ export const merge = (subscription, room) => { subscription.usernames = room.usernames; subscription.uids = room.uids; } - if (serverVersion && lt(coerce(serverVersion), '3.7.0')) { + if (serverVersion && compareServerVersion(serverVersion, '3.7.0', methods.lowerThan)) { const updatedAt = room?._updatedAt ? new Date(room._updatedAt) : null; const lastMessageTs = subscription?.lastMessage?.ts ? new Date(subscription.lastMessage.ts) : null; subscription.roomUpdatedAt = Math.max(updatedAt, lastMessageTs); From 182fa5e43ab70485f8239dd63231bf91be3d3b0b Mon Sep 17 00:00:00 2001 From: Gerzon Date: Fri, 26 Feb 2021 14:59:23 -0400 Subject: [PATCH 07/11] Fix comparison --- app/lib/methods/getPermissions.js | 2 +- app/lib/methods/helpers/mergeSubscriptionsRooms.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/lib/methods/getPermissions.js b/app/lib/methods/getPermissions.js index a2dbccc6a68..4ade6a72bdd 100644 --- a/app/lib/methods/getPermissions.js +++ b/app/lib/methods/getPermissions.js @@ -123,7 +123,7 @@ export function getPermissions() { const allRecords = await permissionsCollection.query().fetch(); // if server version is lower than 0.73.0, fetches from old api - if (serverVersion && compareServerVersion(serverVersion, '0.73.0', methods.lowerThan)) { + if (compareServerVersion(serverVersion, '0.73.0', methods.lowerThan)) { // RC 0.66.0 const result = await this.sdk.get('permissions.list'); if (!result.success) { diff --git a/app/lib/methods/helpers/mergeSubscriptionsRooms.js b/app/lib/methods/helpers/mergeSubscriptionsRooms.js index f1f5aca2970..895f2a8a46a 100644 --- a/app/lib/methods/helpers/mergeSubscriptionsRooms.js +++ b/app/lib/methods/helpers/mergeSubscriptionsRooms.js @@ -28,7 +28,7 @@ export const merge = (subscription, room) => { subscription.usernames = room.usernames; subscription.uids = room.uids; } - if (serverVersion && compareServerVersion(serverVersion, '3.7.0', methods.lowerThan)) { + if (compareServerVersion(serverVersion, '3.7.0', methods.lowerThan)) { const updatedAt = room?._updatedAt ? new Date(room._updatedAt) : null; const lastMessageTs = subscription?.lastMessage?.ts ? new Date(subscription.lastMessage.ts) : null; subscription.roomUpdatedAt = Math.max(updatedAt, lastMessageTs); From af7a71724a65b0b8086dc80a6ddcdfae34ca12a9 Mon Sep 17 00:00:00 2001 From: Gerzon Date: Fri, 26 Feb 2021 15:03:22 -0400 Subject: [PATCH 08/11] Update getPermissions.js --- app/lib/methods/getPermissions.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app/lib/methods/getPermissions.js b/app/lib/methods/getPermissions.js index 4ade6a72bdd..09b91aa631a 100644 --- a/app/lib/methods/getPermissions.js +++ b/app/lib/methods/getPermissions.js @@ -1,6 +1,5 @@ import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; import { Q } from '@nozbe/watermelondb'; -import coerce from 'semver/functions/coerce'; import orderBy from 'lodash/orderBy'; import { compareServerVersion, methods } from '../utils'; From 3453f17d5052f8b3dc2f81862b6f4f1ef3810ee1 Mon Sep 17 00:00:00 2001 From: Gerzon Date: Sat, 27 Feb 2021 19:29:20 -0400 Subject: [PATCH 09/11] Remove unused import --- app/lib/methods/getCustomEmojis.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app/lib/methods/getCustomEmojis.js b/app/lib/methods/getCustomEmojis.js index 2c703b84cf2..d56a20bace1 100644 --- a/app/lib/methods/getCustomEmojis.js +++ b/app/lib/methods/getCustomEmojis.js @@ -1,4 +1,3 @@ -import lt from 'semver/functions/lt'; import orderBy from 'lodash/orderBy'; import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord'; From 50e8cc6c12982063be45bcb2eb6b5feae155aa5d Mon Sep 17 00:00:00 2001 From: Gerzon Date: Sat, 27 Feb 2021 19:34:14 -0400 Subject: [PATCH 10/11] Fix lint --- app/lib/utils.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/lib/utils.js b/app/lib/utils.js index 014519829ec..94cd97773fc 100644 --- a/app/lib/utils.js +++ b/app/lib/utils.js @@ -1,4 +1,6 @@ -import { lt, lte, gt, gte, coerce } from 'semver'; +import { + lt, lte, gt, gte, coerce +} from 'semver'; export const formatAttachmentUrl = (attachmentUrl, userId, token, server) => { if (attachmentUrl.startsWith('http')) { @@ -17,4 +19,4 @@ export const methods = { greaterThanOrEqualTo: gte }; -export const compareServerVersion = (currentServerVersion, versionToCompare, func) => currentServerVersion && func(coerce(currentServerVersion), versionToCompare); \ No newline at end of file +export const compareServerVersion = (currentServerVersion, versionToCompare, func) => currentServerVersion && func(coerce(currentServerVersion), versionToCompare); From 5a2aa9996b0226443bb84d70ed35ea0ea94ade79 Mon Sep 17 00:00:00 2001 From: Gerzon Z Date: Tue, 2 Mar 2021 12:44:44 -0400 Subject: [PATCH 11/11] Fix lint --- app/lib/utils.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/lib/utils.js b/app/lib/utils.js index 94cd97773fc..769fd6d7670 100644 --- a/app/lib/utils.js +++ b/app/lib/utils.js @@ -1,5 +1,5 @@ -import { - lt, lte, gt, gte, coerce +import { + lt, lte, gt, gte, coerce } from 'semver'; export const formatAttachmentUrl = (attachmentUrl, userId, token, server) => {