From e5cf992ede00d4a88c2fe0063c7c19985c3af066 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Tue, 26 Sep 2023 14:09:34 +0200 Subject: [PATCH 1/7] ref: move Link lib to TS --- src/libs/actions/{Link.js => Link.ts} | 35 ++++++++------------------- 1 file changed, 10 insertions(+), 25 deletions(-) rename src/libs/actions/{Link.js => Link.ts} (64%) diff --git a/src/libs/actions/Link.js b/src/libs/actions/Link.ts similarity index 64% rename from src/libs/actions/Link.js rename to src/libs/actions/Link.ts index 06705182a626..943dd197eb19 100644 --- a/src/libs/actions/Link.js +++ b/src/libs/actions/Link.ts @@ -1,6 +1,4 @@ import Onyx from 'react-native-onyx'; -import lodashGet from 'lodash/get'; -import _ from 'underscore'; import ONYXKEYS from '../../ONYXKEYS'; import asyncOpenURL from '../asyncOpenURL'; import * as API from '../API'; @@ -10,29 +8,23 @@ import * as Url from '../Url'; let isNetworkOffline = false; Onyx.connect({ key: ONYXKEYS.NETWORK, - callback: (val) => (isNetworkOffline = lodashGet(val, 'isOffline', false)), + callback: (value) => (isNetworkOffline = value?.isOffline ?? false), }); -let currentUserEmail; +let currentUserEmail: string; Onyx.connect({ key: ONYXKEYS.SESSION, - callback: (val) => (currentUserEmail = lodashGet(val, 'email', '')), + callback: (value) => (currentUserEmail = value?.email ?? ''), }); -/** - * @param {String} [url] the url path - * @param {String} [shortLivedAuthToken] - * - * @returns {Promise} - */ -function buildOldDotURL(url, shortLivedAuthToken) { - const hasHashParams = url.indexOf('#') !== -1; - const hasURLParams = url.indexOf('?') !== -1; +function buildOldDotURL(url?: string, shortLivedAuthToken?: string): Promise { + const hasHashParams = url?.indexOf('#') !== -1; + const hasURLParams = url?.indexOf('?') !== -1; const authTokenParam = shortLivedAuthToken ? `authToken=${shortLivedAuthToken}` : ''; const emailParam = `email=${encodeURIComponent(currentUserEmail)}`; - - const params = _.compact([authTokenParam, emailParam]).join('&'); + const paramsArray = [authTokenParam, emailParam]; + const params = paramsArray.filter(Boolean).join('&'); return Environment.getOldDotEnvironmentURL().then((environmentURL) => { const oldDotDomain = Url.addTrailingForwardSlash(environmentURL); @@ -42,18 +34,11 @@ function buildOldDotURL(url, shortLivedAuthToken) { }); } -/** - * @param {String} url - * @param {Boolean} shouldSkipCustomSafariLogic When true, we will use `Linking.openURL` even if the browser is Safari. - */ -function openExternalLink(url, shouldSkipCustomSafariLogic = false) { +function openExternalLink(url: string, shouldSkipCustomSafariLogic = false) { asyncOpenURL(Promise.resolve(), url, shouldSkipCustomSafariLogic); } -/** - * @param {String} url the url path - */ -function openOldDotLink(url) { +function openOldDotLink(url: string) { if (isNetworkOffline) { buildOldDotURL(url).then((oldDotURL) => openExternalLink(oldDotURL)); return; From 4662d7d695d78815fb309cbc36b27b0a47649a20 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Tue, 26 Sep 2023 15:16:45 +0200 Subject: [PATCH 2/7] fix: resolve comments --- src/libs/actions/Link.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libs/actions/Link.ts b/src/libs/actions/Link.ts index 943dd197eb19..671d44d30ecb 100644 --- a/src/libs/actions/Link.ts +++ b/src/libs/actions/Link.ts @@ -5,13 +5,13 @@ import * as API from '../API'; import * as Environment from '../Environment/Environment'; import * as Url from '../Url'; -let isNetworkOffline = false; +let isNetworkOffline: boolean | undefined = false; Onyx.connect({ key: ONYXKEYS.NETWORK, callback: (value) => (isNetworkOffline = value?.isOffline ?? false), }); -let currentUserEmail: string; +let currentUserEmail: string | undefined; Onyx.connect({ key: ONYXKEYS.SESSION, callback: (value) => (currentUserEmail = value?.email ?? ''), @@ -22,7 +22,7 @@ function buildOldDotURL(url?: string, shortLivedAuthToken?: string): Promise Date: Thu, 28 Sep 2023 12:34:34 +0200 Subject: [PATCH 3/7] ref: resolve comments --- src/libs/actions/Link.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libs/actions/Link.ts b/src/libs/actions/Link.ts index 671d44d30ecb..59ed3b070b0d 100644 --- a/src/libs/actions/Link.ts +++ b/src/libs/actions/Link.ts @@ -17,9 +17,9 @@ Onyx.connect({ callback: (value) => (currentUserEmail = value?.email ?? ''), }); -function buildOldDotURL(url?: string, shortLivedAuthToken?: string): Promise { - const hasHashParams = url?.indexOf('#') !== -1; - const hasURLParams = url?.indexOf('?') !== -1; +function buildOldDotURL(url: string, shortLivedAuthToken?: string): Promise { + const hasHashParams = url.indexOf('#') !== -1; + const hasURLParams = url.indexOf('?') !== -1; const authTokenParam = shortLivedAuthToken ? `authToken=${shortLivedAuthToken}` : ''; const emailParam = `email=${encodeURIComponent(currentUserEmail ?? '')}`; From d6b95ed90ce7c42a9bb07f439d76a29aa6bbd9d9 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Thu, 28 Sep 2023 13:17:50 +0200 Subject: [PATCH 4/7] ref: resolve comments --- src/libs/actions/Link.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/actions/Link.ts b/src/libs/actions/Link.ts index 59ed3b070b0d..3a77031f258b 100644 --- a/src/libs/actions/Link.ts +++ b/src/libs/actions/Link.ts @@ -5,13 +5,13 @@ import * as API from '../API'; import * as Environment from '../Environment/Environment'; import * as Url from '../Url'; -let isNetworkOffline: boolean | undefined = false; +let isNetworkOffline = false; Onyx.connect({ key: ONYXKEYS.NETWORK, callback: (value) => (isNetworkOffline = value?.isOffline ?? false), }); -let currentUserEmail: string | undefined; +let currentUserEmail = ''; Onyx.connect({ key: ONYXKEYS.SESSION, callback: (value) => (currentUserEmail = value?.email ?? ''), From 5d5f0ff194cf5718552d285b534b1e82f9d36b4f Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Thu, 28 Sep 2023 13:19:09 +0200 Subject: [PATCH 5/7] fix: removed unnecessay defaultin to '' --- src/libs/actions/Link.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/actions/Link.ts b/src/libs/actions/Link.ts index 3a77031f258b..dd9d66b839b3 100644 --- a/src/libs/actions/Link.ts +++ b/src/libs/actions/Link.ts @@ -22,7 +22,7 @@ function buildOldDotURL(url: string, shortLivedAuthToken?: string): Promise Date: Mon, 30 Oct 2023 12:16:43 +0100 Subject: [PATCH 6/7] fix: linter --- src/libs/actions/Link.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/libs/actions/Link.ts b/src/libs/actions/Link.ts index 2343dff04a1b..9f30768ff01f 100644 --- a/src/libs/actions/Link.ts +++ b/src/libs/actions/Link.ts @@ -48,9 +48,7 @@ function openOldDotLink(url: string) { asyncOpenURL( // eslint-disable-next-line rulesdir/no-api-side-effects-method API.makeRequestWithSideEffects('OpenOldDotLink', {}, {}) - .then((response) => { - return response ? buildOldDotURL(url, response.shortLivedAuthToken) : buildOldDotURL(url); - }) + .then((response) => (response ? buildOldDotURL(url, response.shortLivedAuthToken) : buildOldDotURL(url))) .catch(() => buildOldDotURL(url)), (oldDotURL) => oldDotURL, ); From f8a156d9df21d6b8ac180493364e8484c9c3d6e9 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Fri, 3 Nov 2023 08:08:53 +0100 Subject: [PATCH 7/7] fix: revert function param description --- src/libs/actions/Link.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libs/actions/Link.ts b/src/libs/actions/Link.ts index 9f30768ff01f..d741ced6dc08 100644 --- a/src/libs/actions/Link.ts +++ b/src/libs/actions/Link.ts @@ -34,6 +34,9 @@ function buildOldDotURL(url: string, shortLivedAuthToken?: string): Promise