diff --git a/src/libs/actions/PersistedRequests.js b/src/libs/actions/PersistedRequests.ts similarity index 69% rename from src/libs/actions/PersistedRequests.js rename to src/libs/actions/PersistedRequests.ts index be30e6b3c8ed..dda88c465d77 100644 --- a/src/libs/actions/PersistedRequests.js +++ b/src/libs/actions/PersistedRequests.ts @@ -1,22 +1,20 @@ import Onyx from 'react-native-onyx'; -import _ from 'underscore'; +import isEqual from 'lodash/isEqual'; import ONYXKEYS from '../../ONYXKEYS'; +import {Request} from '../../types/onyx'; -let persistedRequests = []; +let persistedRequests: Request[] = []; Onyx.connect({ key: ONYXKEYS.PERSISTED_REQUESTS, - callback: (val) => (persistedRequests = val || []), + callback: (val) => (persistedRequests = val ?? []), }); function clear() { Onyx.set(ONYXKEYS.PERSISTED_REQUESTS, []); } -/** - * @param {Array} requestsToPersist - */ -function save(requestsToPersist) { +function save(requestsToPersist: Request[]) { if (persistedRequests.length) { persistedRequests = persistedRequests.concat(requestsToPersist); } else { @@ -25,16 +23,13 @@ function save(requestsToPersist) { Onyx.set(ONYXKEYS.PERSISTED_REQUESTS, persistedRequests); } -/** - * @param {Object} requestToRemove - */ -function remove(requestToRemove) { +function remove(requestToRemove: Request) { /** * We only remove the first matching request because the order of requests matters. * If we were to remove all matching requests, we can end up with a final state that is different than what the user intended. */ const requests = [...persistedRequests]; - const index = _.findIndex(requests, (persistedRequest) => _.isEqual(persistedRequest, requestToRemove)); + const index = requests.findIndex((persistedRequest) => isEqual(persistedRequest, requestToRemove)); if (index !== -1) { requests.splice(index, 1); } @@ -43,10 +38,7 @@ function remove(requestToRemove) { Onyx.set(ONYXKEYS.PERSISTED_REQUESTS, requests); } -/** - * @returns {Array} - */ -function getAll() { +function getAll(): Request[] { return persistedRequests; }