Skip to content

Commit 278bb5d

Browse files
authored
Merge pull request #28257 from kubabutkiewicz/ts-migration/Link-lib
2 parents 65cb41f + f8a156d commit 278bb5d

File tree

2 files changed

+11
-22
lines changed

2 files changed

+11
-22
lines changed

src/libs/actions/Link.js renamed to src/libs/actions/Link.ts

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import lodashGet from 'lodash/get';
21
import Onyx from 'react-native-onyx';
3-
import _ from 'underscore';
42
import * as API from '@libs/API';
53
import asyncOpenURL from '@libs/asyncOpenURL';
64
import * as Environment from '@libs/Environment/Environment';
@@ -10,29 +8,23 @@ import ONYXKEYS from '@src/ONYXKEYS';
108
let isNetworkOffline = false;
119
Onyx.connect({
1210
key: ONYXKEYS.NETWORK,
13-
callback: (val) => (isNetworkOffline = lodashGet(val, 'isOffline', false)),
11+
callback: (value) => (isNetworkOffline = value?.isOffline ?? false),
1412
});
1513

16-
let currentUserEmail;
14+
let currentUserEmail = '';
1715
Onyx.connect({
1816
key: ONYXKEYS.SESSION,
19-
callback: (val) => (currentUserEmail = lodashGet(val, 'email', '')),
17+
callback: (value) => (currentUserEmail = value?.email ?? ''),
2018
});
2119

22-
/**
23-
* @param {String} [url] the url path
24-
* @param {String} [shortLivedAuthToken]
25-
*
26-
* @returns {Promise<string>}
27-
*/
28-
function buildOldDotURL(url, shortLivedAuthToken) {
20+
function buildOldDotURL(url: string, shortLivedAuthToken?: string): Promise<string> {
2921
const hasHashParams = url.indexOf('#') !== -1;
3022
const hasURLParams = url.indexOf('?') !== -1;
3123

3224
const authTokenParam = shortLivedAuthToken ? `authToken=${shortLivedAuthToken}` : '';
3325
const emailParam = `email=${encodeURIComponent(currentUserEmail)}`;
34-
35-
const params = _.compact([authTokenParam, emailParam]).join('&');
26+
const paramsArray = [authTokenParam, emailParam];
27+
const params = paramsArray.filter(Boolean).join('&');
3628

3729
return Environment.getOldDotEnvironmentURL().then((environmentURL) => {
3830
const oldDotDomain = Url.addTrailingForwardSlash(environmentURL);
@@ -43,17 +35,13 @@ function buildOldDotURL(url, shortLivedAuthToken) {
4335
}
4436

4537
/**
46-
* @param {String} url
47-
* @param {Boolean} shouldSkipCustomSafariLogic When true, we will use `Linking.openURL` even if the browser is Safari.
38+
* @param shouldSkipCustomSafariLogic When true, we will use `Linking.openURL` even if the browser is Safari.
4839
*/
49-
function openExternalLink(url, shouldSkipCustomSafariLogic = false) {
40+
function openExternalLink(url: string, shouldSkipCustomSafariLogic = false) {
5041
asyncOpenURL(Promise.resolve(), url, shouldSkipCustomSafariLogic);
5142
}
5243

53-
/**
54-
* @param {String} url the url path
55-
*/
56-
function openOldDotLink(url) {
44+
function openOldDotLink(url: string) {
5745
if (isNetworkOffline) {
5846
buildOldDotURL(url).then((oldDotURL) => openExternalLink(oldDotURL));
5947
return;
@@ -63,7 +51,7 @@ function openOldDotLink(url) {
6351
asyncOpenURL(
6452
// eslint-disable-next-line rulesdir/no-api-side-effects-method
6553
API.makeRequestWithSideEffects('OpenOldDotLink', {}, {})
66-
.then((response) => buildOldDotURL(url, response.shortLivedAuthToken))
54+
.then((response) => (response ? buildOldDotURL(url, response.shortLivedAuthToken) : buildOldDotURL(url)))
6755
.catch(() => buildOldDotURL(url)),
6856
(oldDotURL) => oldDotURL,
6957
);

src/types/onyx/Response.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ type Response = {
1010
authToken?: string;
1111
encryptedAuthToken?: string;
1212
message?: string;
13+
shortLivedAuthToken?: string;
1314
};
1415

1516
export default Response;

0 commit comments

Comments
 (0)