From dde6aca441a7aa3f99ddcea54826f1de16a8e26a Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Mon, 18 Dec 2023 17:11:25 +0100 Subject: [PATCH 01/20] chore: move IOUWaypoint Pages to TS --- src/ROUTES.ts | 2 +- src/libs/Navigation/types.ts | 4 +- src/libs/actions/Transaction.ts | 20 ++- src/pages/iou/MoneyRequestEditWaypointPage.js | 32 ----- .../iou/MoneyRequestEditWaypointPage.tsx | 15 ++ .../NewDistanceRequestWaypointEditorPage.js | 55 -------- .../NewDistanceRequestWaypointEditorPage.tsx | 38 +++++ .../{WaypointEditor.js => WaypointEditor.tsx} | 132 ++++++++---------- src/types/onyx/Transaction.ts | 20 ++- 9 files changed, 145 insertions(+), 173 deletions(-) delete mode 100644 src/pages/iou/MoneyRequestEditWaypointPage.js create mode 100644 src/pages/iou/MoneyRequestEditWaypointPage.tsx delete mode 100644 src/pages/iou/NewDistanceRequestWaypointEditorPage.js create mode 100644 src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx rename src/pages/iou/{WaypointEditor.js => WaypointEditor.tsx} (73%) diff --git a/src/ROUTES.ts b/src/ROUTES.ts index ca1fe9f0e81a..1a205c7827b1 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -300,7 +300,7 @@ const ROUTES = { }, MONEY_REQUEST_EDIT_WAYPOINT: { route: 'r/:threadReportID/edit/distance/:transactionID/waypoint/:waypointIndex', - getRoute: (threadReportID: number, transactionID: string, waypointIndex: number) => `r/${threadReportID}/edit/distance/${transactionID}/waypoint/${waypointIndex}` as const, + getRoute: (threadReportID: string, transactionID: string, waypointIndex: number) => `r/${threadReportID}/edit/distance/${transactionID}/waypoint/${waypointIndex}` as const, }, MONEY_REQUEST_DISTANCE_TAB: { route: ':iouType/new/:reportID?/distance', diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index 94a07ddc6b73..bae2ccaf1cc0 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -227,13 +227,13 @@ type MoneyRequestNavigatorParamList = { iouType: string; transactionID: string; waypointIndex: string; - threadReportID: number; + threadReportID: string; }; [SCREENS.MONEY_REQUEST.EDIT_WAYPOINT]: { iouType: string; transactionID: string; waypointIndex: string; - threadReportID: number; + threadReportID: string; }; [SCREENS.MONEY_REQUEST.DISTANCE]: { iouType: ValueOf; diff --git a/src/libs/actions/Transaction.ts b/src/libs/actions/Transaction.ts index 86bd1b31714d..75a202b59986 100644 --- a/src/libs/actions/Transaction.ts +++ b/src/libs/actions/Transaction.ts @@ -1,7 +1,7 @@ import {isEqual} from 'lodash'; import lodashClone from 'lodash/clone'; import lodashHas from 'lodash/has'; -import Onyx from 'react-native-onyx'; +import Onyx, {OnyxEntry} from 'react-native-onyx'; import * as API from '@libs/API'; import * as CollectionUtils from '@libs/CollectionUtils'; import * as TransactionUtils from '@libs/TransactionUtils'; @@ -102,7 +102,7 @@ function saveWaypoint(transactionID: string, index: string, waypoint: RecentWayp } } -function removeWaypoint(transaction: Transaction, currentIndex: string, isDraft: boolean) { +function removeWaypoint(transaction: OnyxEntry, currentIndex: string, isDraft?: boolean) { // Index comes from the route params and is a string const index = Number(currentIndex); const existingWaypoints = transaction?.comment?.waypoints ?? {}; @@ -131,8 +131,18 @@ function removeWaypoint(transaction: Transaction, currentIndex: string, isDraft: // Doing a deep clone of the transaction to avoid mutating the original object and running into a cache issue when using Onyx.set let newTransaction: Transaction = { ...transaction, + amount: transaction?.amount ?? 0, + billable: transaction?.billable ?? false, + category: transaction?.category ?? '', + created: transaction?.created ?? '', + currency: transaction?.currency ?? '', + pendingAction: transaction?.pendingAction ?? null, + merchant: transaction?.merchant ?? '', + reportID: transaction?.reportID ?? '', + transactionID: transaction?.transactionID ?? '', + tag: transaction?.tag ?? '', comment: { - ...transaction.comment, + ...transaction?.comment, waypoints: reIndexedWaypoints, }, }; @@ -156,10 +166,10 @@ function removeWaypoint(transaction: Transaction, currentIndex: string, isDraft: }; } if (isDraft) { - Onyx.set(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${transaction.transactionID}`, newTransaction); + Onyx.set(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${transaction?.transactionID}`, newTransaction); return; } - Onyx.set(`${ONYXKEYS.COLLECTION.TRANSACTION}${transaction.transactionID}`, newTransaction); + Onyx.set(`${ONYXKEYS.COLLECTION.TRANSACTION}${transaction?.transactionID}`, newTransaction); } function getOnyxDataForRouteRequest(transactionID: string, isDraft = false): OnyxData { diff --git a/src/pages/iou/MoneyRequestEditWaypointPage.js b/src/pages/iou/MoneyRequestEditWaypointPage.js deleted file mode 100644 index fc777891109e..000000000000 --- a/src/pages/iou/MoneyRequestEditWaypointPage.js +++ /dev/null @@ -1,32 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import WaypointEditor from './WaypointEditor'; - -const propTypes = { - /** Route params */ - route: PropTypes.shape({ - params: PropTypes.shape({ - /** Thread reportID */ - threadReportID: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** ID of the transaction being edited */ - transactionID: PropTypes.string, - - /** Index of the waypoint being edited */ - waypointIndex: PropTypes.string, - }), - }), -}; - -const defaultProps = { - route: {}, -}; - -function MoneyRequestEditWaypointPage({route}) { - return ; -} - -MoneyRequestEditWaypointPage.displayName = 'MoneyRequestEditWaypointPage'; -MoneyRequestEditWaypointPage.propTypes = propTypes; -MoneyRequestEditWaypointPage.defaultProps = defaultProps; -export default MoneyRequestEditWaypointPage; diff --git a/src/pages/iou/MoneyRequestEditWaypointPage.tsx b/src/pages/iou/MoneyRequestEditWaypointPage.tsx new file mode 100644 index 000000000000..49319b2c0e3e --- /dev/null +++ b/src/pages/iou/MoneyRequestEditWaypointPage.tsx @@ -0,0 +1,15 @@ +import {StackScreenProps} from '@react-navigation/stack'; +import React from 'react'; +import {MoneyRequestNavigatorParamList} from '@libs/Navigation/types'; +import SCREENS from '@src/SCREENS'; +import WaypointEditor from './WaypointEditor'; + +type MoneyRequestEditWaypointPageProps = StackScreenProps; + +function MoneyRequestEditWaypointPage({route}: MoneyRequestEditWaypointPageProps) { + return ; +} + +MoneyRequestEditWaypointPage.displayName = 'MoneyRequestEditWaypointPage'; + +export default MoneyRequestEditWaypointPage; diff --git a/src/pages/iou/NewDistanceRequestWaypointEditorPage.js b/src/pages/iou/NewDistanceRequestWaypointEditorPage.js deleted file mode 100644 index 269cde577040..000000000000 --- a/src/pages/iou/NewDistanceRequestWaypointEditorPage.js +++ /dev/null @@ -1,55 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import {withOnyx} from 'react-native-onyx'; -import ONYXKEYS from '@src/ONYXKEYS'; -import WaypointEditor from './WaypointEditor'; - -const propTypes = { - /** The transactionID of this request */ - transactionID: PropTypes.string, - - /** Route params */ - route: PropTypes.shape({ - params: PropTypes.shape({ - /** IOU type */ - iouType: PropTypes.string, - - /** Index of the waypoint being edited */ - waypointIndex: PropTypes.string, - }), - }), -}; - -const defaultProps = { - transactionID: '', - route: { - params: { - iouType: '', - waypointIndex: '', - }, - }, -}; - -// This component is responsible for grabbing the transactionID from the IOU key -// You can't use Onyx props in the withOnyx mapping, so we need to set up and access the transactionID here, and then pass it down so that WaypointEditor can subscribe to the transaction. -function NewDistanceRequestWaypointEditorPage({transactionID, route}) { - return ( - - ); -} - -NewDistanceRequestWaypointEditorPage.displayName = 'NewDistanceRequestWaypointEditorPage'; -NewDistanceRequestWaypointEditorPage.propTypes = propTypes; -NewDistanceRequestWaypointEditorPage.defaultProps = defaultProps; -export default withOnyx({ - transactionID: {key: ONYXKEYS.IOU, selector: (iou) => iou && iou.transactionID}, -})(NewDistanceRequestWaypointEditorPage); diff --git a/src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx b/src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx new file mode 100644 index 000000000000..2480c8cc097c --- /dev/null +++ b/src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx @@ -0,0 +1,38 @@ +import {RouteProp} from '@react-navigation/native'; +import {StackScreenProps} from '@react-navigation/stack'; +import React from 'react'; +import {withOnyx} from 'react-native-onyx'; +import {MoneyRequestNavigatorParamList} from '@libs/Navigation/types'; +import ONYXKEYS from '@src/ONYXKEYS'; +import SCREENS from '@src/SCREENS'; +import WaypointEditor from './WaypointEditor'; + +type NewDistanceRequestWaypointEditorPageOnyxProps = { + transactionID: string | undefined; +}; +type NewDistanceRequestWaypointEditorPageProps = StackScreenProps & NewDistanceRequestWaypointEditorPageOnyxProps; + +// This component is responsible for grabbing the transactionID from the IOU key +// You can't use Onyx props in the withOnyx mapping, so we need to set up and access the transactionID here, and then pass it down so that WaypointEditor can subscribe to the transaction. +function NewDistanceRequestWaypointEditorPage({transactionID, route}: NewDistanceRequestWaypointEditorPageProps) { + return ( + + } + /> + ); +} + +NewDistanceRequestWaypointEditorPage.displayName = 'NewDistanceRequestWaypointEditorPage'; + +export default withOnyx({ + transactionID: {key: ONYXKEYS.IOU, selector: (iou) => iou?.transactionID}, +})(NewDistanceRequestWaypointEditorPage); diff --git a/src/pages/iou/WaypointEditor.js b/src/pages/iou/WaypointEditor.tsx similarity index 73% rename from src/pages/iou/WaypointEditor.js rename to src/pages/iou/WaypointEditor.tsx index e8d3c8520ca8..d72a3001094f 100644 --- a/src/pages/iou/WaypointEditor.js +++ b/src/pages/iou/WaypointEditor.tsx @@ -1,9 +1,7 @@ -import {useNavigation} from '@react-navigation/native'; -import lodashGet from 'lodash/get'; -import PropTypes from 'prop-types'; +import {RouteProp, useNavigation} from '@react-navigation/native'; +import {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo, useRef, useState} from 'react'; -import {withOnyx} from 'react-native-onyx'; -import _ from 'underscore'; +import {OnyxEntry, withOnyx} from 'react-native-onyx'; import AddressSearch from '@components/AddressSearch'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; import ConfirmModal from '@components/ConfirmModal'; @@ -12,71 +10,51 @@ import InputWrapper from '@components/Form/InputWrapper'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import * as Expensicons from '@components/Icon/Expensicons'; import ScreenWrapper from '@components/ScreenWrapper'; -import transactionPropTypes from '@components/transactionPropTypes'; import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import {MoneyRequestNavigatorParamList} from '@libs/Navigation/types'; import * as ValidationUtils from '@libs/ValidationUtils'; import * as Transaction from '@userActions/Transaction'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; +import SCREENS from '@src/SCREENS'; +import * as OnyxTypes from '@src/types/onyx'; +import {Waypoint} from '@src/types/onyx/Transaction'; +import {isNotEmptyObject} from '@src/types/utils/EmptyObject'; + +type MappedWaypoint = { + name: string | undefined; + description: string; + geometry: { + location: { + lat: number; + lng: number; + }; + }; +}; -const propTypes = { - /** Route params */ - route: PropTypes.shape({ - params: PropTypes.shape({ - /** IOU type */ - iouType: PropTypes.string, - - /** Thread reportID */ - threadReportID: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - - /** ID of the transaction being edited */ - transactionID: PropTypes.string, - - /** Index of the waypoint being edited */ - waypointIndex: PropTypes.string, - }), - }), - - recentWaypoints: PropTypes.arrayOf( - PropTypes.shape({ - /** The name of the location */ - name: PropTypes.string, - - /** A description of the location (usually the address) */ - description: PropTypes.string, - - /** Data required by the google auto complete plugin to know where to put the markers on the map */ - geometry: PropTypes.shape({ - /** Data about the location */ - location: PropTypes.shape({ - /** Latitude of the location */ - lat: PropTypes.number, - - /** Longitude of the location */ - lng: PropTypes.number, - }), - }), - }), - ), - - /* Onyx props */ +type WaypointEditorOnyxProps = { /** The optimistic transaction for this request */ - transaction: transactionPropTypes, -}; + transaction: OnyxEntry; -const defaultProps = { - route: {}, - recentWaypoints: [], - transaction: {}, + /** List of recent waypoints */ + recentWaypoints: OnyxEntry; }; -function WaypointEditor({route: {params: {iouType = '', transactionID = '', waypointIndex = '', threadReportID = 0}} = {}, transaction, recentWaypoints}) { +type WaypointEditorProps = {route: RouteProp} & WaypointEditorOnyxProps; + +function WaypointEditor({ + route: { + params: {iouType = '', transactionID = '', waypointIndex = '', threadReportID = ''}, + }, + transaction, + recentWaypoints = [], +}: WaypointEditorProps) { const styles = useThemeStyles(); const {windowWidth} = useWindowDimensions(); const [isDeleteStopModalOpen, setIsDeleteStopModalOpen] = useState(false); @@ -86,11 +64,11 @@ function WaypointEditor({route: {params: {iouType = '', transactionID = '', wayp const {isOffline} = useNetwork(); const textInput = useRef(null); const parsedWaypointIndex = parseInt(waypointIndex, 10); - const allWaypoints = lodashGet(transaction, 'comment.waypoints', {}); - const currentWaypoint = lodashGet(allWaypoints, `waypoint${waypointIndex}`, {}); + const allWaypoints = transaction?.comment.waypoints ?? {}; + const currentWaypoint = allWaypoints[`waypoint${waypointIndex}`] ?? {}; - const waypointCount = _.size(allWaypoints); - const filledWaypointCount = _.size(_.filter(allWaypoints, (waypoint) => !_.isEmpty(waypoint))); + const waypointCount = Object.keys(allWaypoints).length; + const filledWaypointCount = Object.values(allWaypoints).filter((waypoint) => isNotEmptyObject(waypoint)).length; const waypointDescriptionKey = useMemo(() => { switch (parsedWaypointIndex) { @@ -103,15 +81,15 @@ function WaypointEditor({route: {params: {iouType = '', transactionID = '', wayp } }, [parsedWaypointIndex, waypointCount]); - const waypointAddress = lodashGet(currentWaypoint, 'address', ''); - const isEditingWaypoint = Boolean(threadReportID); + const waypointAddress = currentWaypoint.address ?? ''; + const isEditingWaypoint = !!threadReportID; // Hide the menu when there is only start and finish waypoint const shouldShowThreeDotsButton = waypointCount > 2; const shouldDisableEditor = isFocused && (Number.isNaN(parsedWaypointIndex) || parsedWaypointIndex < 0 || parsedWaypointIndex > waypointCount || (filledWaypointCount < 2 && parsedWaypointIndex >= waypointCount)); - const validate = (values) => { + const validate = (values: Record) => { const errors = {}; const waypointValue = values[`waypoint${waypointIndex}`] || ''; if (isOffline && waypointValue !== '' && !ValidationUtils.isValidAddress(waypointValue)) { @@ -127,9 +105,9 @@ function WaypointEditor({route: {params: {iouType = '', transactionID = '', wayp return errors; }; - const saveWaypoint = (waypoint) => Transaction.saveWaypoint(transactionID, waypointIndex, waypoint, isEditingWaypoint); + const saveWaypoint = (waypoint: OnyxTypes.RecentWaypoint) => Transaction.saveWaypoint(transactionID, waypointIndex, waypoint, isEditingWaypoint); - const submit = (values) => { + const submit = (values: Record) => { const waypointValue = values[`waypoint${waypointIndex}`] || ''; // Allows letting you set a waypoint to an empty value @@ -141,10 +119,10 @@ function WaypointEditor({route: {params: {iouType = '', transactionID = '', wayp // Therefore, we're going to save the waypoint as just the address, and the lat/long will be filled in on the backend if (isOffline && waypointValue) { const waypoint = { - lat: null, - lng: null, + lat: -1, + lng: -1, address: waypointValue, - name: null, + name: undefined, }; saveWaypoint(waypoint); } @@ -159,12 +137,13 @@ function WaypointEditor({route: {params: {iouType = '', transactionID = '', wayp Navigation.goBack(ROUTES.MONEY_REQUEST_DISTANCE_TAB.getRoute(iouType)); }; - const selectWaypoint = (values) => { + const selectWaypoint = (values: Waypoint) => { const waypoint = { - lat: values.lat, - lng: values.lng, - address: values.address, - name: values.name || null, + lat: values.lat ?? 0, + lng: values.lng ?? 0, + address: values.address ?? '', + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing + name: values.name, }; saveWaypoint(waypoint); @@ -178,7 +157,7 @@ function WaypointEditor({route: {params: {iouType = '', transactionID = '', wayp return ( textInput.current && textInput.current.focus()} + onEntryTransitionEnd={() => textInput.current?.focus()} shouldEnableMaxHeight testID={WaypointEditor.displayName} > @@ -251,11 +230,10 @@ function WaypointEditor({route: {params: {iouType = '', transactionID = '', wayp } WaypointEditor.displayName = 'WaypointEditor'; -WaypointEditor.propTypes = propTypes; -WaypointEditor.defaultProps = defaultProps; -export default withOnyx({ + +export default withOnyx({ transaction: { - key: ({route}) => `${ONYXKEYS.COLLECTION.TRANSACTION}${lodashGet(route, 'params.transactionID')}`, + key: ({route}) => `${ONYXKEYS.COLLECTION.TRANSACTION}${route.params.transactionID}`, }, recentWaypoints: { key: ONYXKEYS.NVP_RECENT_WAYPOINTS, @@ -263,7 +241,7 @@ export default withOnyx({ // Only grab the most recent 5 waypoints because that's all that is shown in the UI. This also puts them into the format of data // that the google autocomplete component expects for it's "predefined places" feature. selector: (waypoints) => - _.map(waypoints ? waypoints.slice(0, 5) : [], (waypoint) => ({ + (waypoints ? waypoints.slice(0, 5) : []).map((waypoint) => ({ name: waypoint.name, description: waypoint.address, geometry: { diff --git a/src/types/onyx/Transaction.ts b/src/types/onyx/Transaction.ts index 53bfc36a4e47..5ca701cf1f8e 100644 --- a/src/types/onyx/Transaction.ts +++ b/src/types/onyx/Transaction.ts @@ -15,6 +15,24 @@ type Waypoint = { /** The longitude of the waypoint */ lng?: number; + + /** Address city */ + city?: string; + + /** Address state */ + state?: string; + + /** Address zip code */ + zipCode?: string; + + /** Address country */ + country?: string; + + /** Address street line 1 */ + street?: string; + + /** Address street line 2 */ + street2?: string; }; type WaypointCollection = Record; @@ -70,7 +88,7 @@ type Transaction = { modifiedWaypoints?: WaypointCollection; // Used during the creation flow before the transaction is saved to the server and helps dictate where the user is navigated to when pressing the back button on the confirmation step participantsAutoAssigned?: boolean; - pendingAction: OnyxCommon.PendingAction; + pendingAction: OnyxCommon.PendingAction | null; receipt?: Receipt; reportID: string; routes?: Routes; From 36c73edf7f23439187fdf5de45800ff036a62d28 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Mon, 18 Dec 2023 17:27:00 +0100 Subject: [PATCH 02/20] ref: seperate types --- src/pages/iou/WaypointEditor.tsx | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/pages/iou/WaypointEditor.tsx b/src/pages/iou/WaypointEditor.tsx index d72a3001094f..2d7fd5b3abcd 100644 --- a/src/pages/iou/WaypointEditor.tsx +++ b/src/pages/iou/WaypointEditor.tsx @@ -1,5 +1,4 @@ import {RouteProp, useNavigation} from '@react-navigation/native'; -import {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo, useRef, useState} from 'react'; import {OnyxEntry, withOnyx} from 'react-native-onyx'; import AddressSearch from '@components/AddressSearch'; @@ -27,15 +26,19 @@ import * as OnyxTypes from '@src/types/onyx'; import {Waypoint} from '@src/types/onyx/Transaction'; import {isNotEmptyObject} from '@src/types/utils/EmptyObject'; +type Location = { + lat: number; + lng: number; +}; + +type Geometry = { + location: Location; +}; + type MappedWaypoint = { name: string | undefined; description: string; - geometry: { - location: { - lat: number; - lng: number; - }; - }; + geometry: Geometry; }; type WaypointEditorOnyxProps = { From a32e718532f0f1029dbad23fee180331677c00ef Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Wed, 20 Dec 2023 08:32:45 +0100 Subject: [PATCH 03/20] chore: added todos --- src/pages/iou/WaypointEditor.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/pages/iou/WaypointEditor.tsx b/src/pages/iou/WaypointEditor.tsx index 2d7fd5b3abcd..43ade2c0b559 100644 --- a/src/pages/iou/WaypointEditor.tsx +++ b/src/pages/iou/WaypointEditor.tsx @@ -1,5 +1,6 @@ import {RouteProp, useNavigation} from '@react-navigation/native'; import React, {useMemo, useRef, useState} from 'react'; +import {TextInput} from 'react-native'; import {OnyxEntry, withOnyx} from 'react-native-onyx'; import AddressSearch from '@components/AddressSearch'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; @@ -65,7 +66,7 @@ function WaypointEditor({ const isFocused = navigation.isFocused(); const {translate} = useLocalize(); const {isOffline} = useNetwork(); - const textInput = useRef(null); + const textInput = useRef(null); const parsedWaypointIndex = parseInt(waypointIndex, 10); const allWaypoints = transaction?.comment.waypoints ?? {}; const currentWaypoint = allWaypoints[`waypoint${waypointIndex}`] ?? {}; @@ -158,9 +159,12 @@ function WaypointEditor({ }; return ( + /* @ts-expect-error TODO: Remove this once ScreenWrapper (https://github.com/Expensify/App/issues/25109) is migrated to TypeScript. */ textInput.current?.focus()} + onEntryTransitionEnd={() => { + textInput.current?.focus(); + }} shouldEnableMaxHeight testID={WaypointEditor.displayName} > @@ -191,6 +195,7 @@ function WaypointEditor({ cancelText={translate('common.cancel')} danger /> + {/* @ts-expect-error TODO: Remove this once Form (https://github.com/Expensify/App/issues/25109) is migrated to TypeScript. */} (textInput.current = e)} + ref={(e) => { + textInput.current = e; + }} hint={!isOffline ? 'distance.errors.selectSuggestedAddress' : ''} containerStyles={[styles.mt3]} label={translate('distance.address')} From 049e7adb17efdbbede6f908ea39acbd64223f91f Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Wed, 20 Dec 2023 11:45:09 +0100 Subject: [PATCH 04/20] fix: address comments --- src/libs/actions/Transaction.ts | 1 - src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx | 4 ++-- src/pages/iou/WaypointEditor.tsx | 6 +++--- src/types/onyx/Transaction.ts | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/libs/actions/Transaction.ts b/src/libs/actions/Transaction.ts index cdb4fad6c14f..ee749b4fab03 100644 --- a/src/libs/actions/Transaction.ts +++ b/src/libs/actions/Transaction.ts @@ -133,7 +133,6 @@ function removeWaypoint(transaction: OnyxEntry, currentIndex: strin category: transaction?.category ?? '', created: transaction?.created ?? '', currency: transaction?.currency ?? '', - pendingAction: transaction?.pendingAction ?? null, merchant: transaction?.merchant ?? '', reportID: transaction?.reportID ?? '', transactionID: transaction?.transactionID ?? '', diff --git a/src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx b/src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx index 2480c8cc097c..de811c5ad9b5 100644 --- a/src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx +++ b/src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx @@ -14,7 +14,7 @@ type NewDistanceRequestWaypointEditorPageProps = StackScreenProps } diff --git a/src/pages/iou/WaypointEditor.tsx b/src/pages/iou/WaypointEditor.tsx index 43ade2c0b559..d2d175624905 100644 --- a/src/pages/iou/WaypointEditor.tsx +++ b/src/pages/iou/WaypointEditor.tsx @@ -37,7 +37,7 @@ type Geometry = { }; type MappedWaypoint = { - name: string | undefined; + name?: string; description: string; geometry: Geometry; }; @@ -143,8 +143,8 @@ function WaypointEditor({ const selectWaypoint = (values: Waypoint) => { const waypoint = { - lat: values.lat ?? 0, - lng: values.lng ?? 0, + lat: values.lat ?? -1, + lng: values.lng ?? -1, address: values.address ?? '', // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing name: values.name, diff --git a/src/types/onyx/Transaction.ts b/src/types/onyx/Transaction.ts index 5ca701cf1f8e..f3fec51bf362 100644 --- a/src/types/onyx/Transaction.ts +++ b/src/types/onyx/Transaction.ts @@ -88,7 +88,7 @@ type Transaction = { modifiedWaypoints?: WaypointCollection; // Used during the creation flow before the transaction is saved to the server and helps dictate where the user is navigated to when pressing the back button on the confirmation step participantsAutoAssigned?: boolean; - pendingAction: OnyxCommon.PendingAction | null; + pendingAction?: OnyxCommon.PendingAction; receipt?: Receipt; reportID: string; routes?: Routes; From 2a751759ef8e01ee5c8d60fffcbeebb3f2151063 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Thu, 21 Dec 2023 15:11:14 +0100 Subject: [PATCH 05/20] fix: adjust recentwaypoint type --- src/pages/iou/WaypointEditor.tsx | 11 ++++------- src/types/onyx/RecentWaypoint.ts | 4 ++-- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/pages/iou/WaypointEditor.tsx b/src/pages/iou/WaypointEditor.tsx index d2d175624905..c28b1b8f86dc 100644 --- a/src/pages/iou/WaypointEditor.tsx +++ b/src/pages/iou/WaypointEditor.tsx @@ -28,8 +28,8 @@ import {Waypoint} from '@src/types/onyx/Transaction'; import {isNotEmptyObject} from '@src/types/utils/EmptyObject'; type Location = { - lat: number; - lng: number; + lat?: number; + lng?: number; }; type Geometry = { @@ -123,10 +123,7 @@ function WaypointEditor({ // Therefore, we're going to save the waypoint as just the address, and the lat/long will be filled in on the backend if (isOffline && waypointValue) { const waypoint = { - lat: -1, - lng: -1, address: waypointValue, - name: undefined, }; saveWaypoint(waypoint); } @@ -143,8 +140,8 @@ function WaypointEditor({ const selectWaypoint = (values: Waypoint) => { const waypoint = { - lat: values.lat ?? -1, - lng: values.lng ?? -1, + lat: values.lat, + lng: values.lng, address: values.address ?? '', // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing name: values.name, diff --git a/src/types/onyx/RecentWaypoint.ts b/src/types/onyx/RecentWaypoint.ts index 097aed3be916..4028e59846ce 100644 --- a/src/types/onyx/RecentWaypoint.ts +++ b/src/types/onyx/RecentWaypoint.ts @@ -6,10 +6,10 @@ type RecentWaypoint = { address: string; /** The lattitude of the waypoint */ - lat: number; + lat?: number; /** The longitude of the waypoint */ - lng: number; + lng?: number; }; export default RecentWaypoint; From 9b36c85dfd9639ace0b6f8ffa2df6150eb2d5daa Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Tue, 2 Jan 2024 14:41:39 +0100 Subject: [PATCH 06/20] fix: type problems --- .../BlockingViews/FullPageNotFoundView.tsx | 4 ++-- src/libs/ErrorUtils.ts | 1 + src/libs/actions/Transaction.ts | 12 ++---------- src/pages/iou/WaypointEditor.tsx | 12 +++++++++--- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/components/BlockingViews/FullPageNotFoundView.tsx b/src/components/BlockingViews/FullPageNotFoundView.tsx index 6d7f838bf6c2..0427b75aa036 100644 --- a/src/components/BlockingViews/FullPageNotFoundView.tsx +++ b/src/components/BlockingViews/FullPageNotFoundView.tsx @@ -33,10 +33,10 @@ type FullPageNotFoundViewProps = { linkKey?: TranslationPaths; /** Method to trigger when pressing the back button of the header */ - onBackButtonPress: () => void; + onBackButtonPress?: () => void; /** Function to call when pressing the navigation link */ - onLinkPress: () => void; + onLinkPress?: () => void; }; // eslint-disable-next-line rulesdir/no-negated-variables diff --git a/src/libs/ErrorUtils.ts b/src/libs/ErrorUtils.ts index 46bdd510f5c4..ab589ea73fbf 100644 --- a/src/libs/ErrorUtils.ts +++ b/src/libs/ErrorUtils.ts @@ -120,3 +120,4 @@ function addErrorMessage(errors: ErrorsList, inpu } export {getAuthenticateErrorMessage, getMicroSecondOnyxError, getMicroSecondOnyxErrorObject, getLatestErrorMessage, getLatestErrorField, getEarliestErrorField, addErrorMessage}; +export type {ErrorsList}; diff --git a/src/libs/actions/Transaction.ts b/src/libs/actions/Transaction.ts index ee749b4fab03..ee09fa6966e4 100644 --- a/src/libs/actions/Transaction.ts +++ b/src/libs/actions/Transaction.ts @@ -127,16 +127,8 @@ function removeWaypoint(transaction: OnyxEntry, currentIndex: strin // to remove nested keys while also preserving other object keys // Doing a deep clone of the transaction to avoid mutating the original object and running into a cache issue when using Onyx.set let newTransaction: Transaction = { - ...transaction, - amount: transaction?.amount ?? 0, - billable: transaction?.billable ?? false, - category: transaction?.category ?? '', - created: transaction?.created ?? '', - currency: transaction?.currency ?? '', - merchant: transaction?.merchant ?? '', - reportID: transaction?.reportID ?? '', - transactionID: transaction?.transactionID ?? '', - tag: transaction?.tag ?? '', + // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style + ...(transaction as Transaction), comment: { ...transaction?.comment, waypoints: reIndexedWaypoints, diff --git a/src/pages/iou/WaypointEditor.tsx b/src/pages/iou/WaypointEditor.tsx index c28b1b8f86dc..80491b3b4a91 100644 --- a/src/pages/iou/WaypointEditor.tsx +++ b/src/pages/iou/WaypointEditor.tsx @@ -36,9 +36,16 @@ type Geometry = { location: Location; }; +type Values = Record; + type MappedWaypoint = { + /* Waypoint name */ name?: string; + + /* Waypoint description */ description: string; + + /* Waypoint geometry object cointaing coordinates */ geometry: Geometry; }; @@ -93,7 +100,7 @@ function WaypointEditor({ isFocused && (Number.isNaN(parsedWaypointIndex) || parsedWaypointIndex < 0 || parsedWaypointIndex > waypointCount || (filledWaypointCount < 2 && parsedWaypointIndex >= waypointCount)); - const validate = (values: Record) => { + const validate = (values: Values): ErrorUtils.ErrorsList => { const errors = {}; const waypointValue = values[`waypoint${waypointIndex}`] || ''; if (isOffline && waypointValue !== '' && !ValidationUtils.isValidAddress(waypointValue)) { @@ -111,7 +118,7 @@ function WaypointEditor({ const saveWaypoint = (waypoint: OnyxTypes.RecentWaypoint) => Transaction.saveWaypoint(transactionID, waypointIndex, waypoint, isEditingWaypoint); - const submit = (values: Record) => { + const submit = (values: Values) => { const waypointValue = values[`waypoint${waypointIndex}`] || ''; // Allows letting you set a waypoint to an empty value @@ -143,7 +150,6 @@ function WaypointEditor({ lat: values.lat, lng: values.lng, address: values.address ?? '', - // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing name: values.name, }; saveWaypoint(waypoint); From 7f463df300e29633d97ab2756736fc030e4b5b1a Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Wed, 3 Jan 2024 14:20:47 +0100 Subject: [PATCH 07/20] fix: resolve comments --- src/pages/iou/WaypointEditor.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pages/iou/WaypointEditor.tsx b/src/pages/iou/WaypointEditor.tsx index 80491b3b4a91..e2367502652e 100644 --- a/src/pages/iou/WaypointEditor.tsx +++ b/src/pages/iou/WaypointEditor.tsx @@ -36,16 +36,16 @@ type Geometry = { location: Location; }; -type Values = Record; +type WaypointValues = Record; type MappedWaypoint = { - /* Waypoint name */ + /** Waypoint name */ name?: string; - /* Waypoint description */ + /** Waypoint description */ description: string; - /* Waypoint geometry object cointaing coordinates */ + /** Waypoint geometry object cointaing coordinates */ geometry: Geometry; }; @@ -100,7 +100,7 @@ function WaypointEditor({ isFocused && (Number.isNaN(parsedWaypointIndex) || parsedWaypointIndex < 0 || parsedWaypointIndex > waypointCount || (filledWaypointCount < 2 && parsedWaypointIndex >= waypointCount)); - const validate = (values: Values): ErrorUtils.ErrorsList => { + const validate = (values: WaypointValues): ErrorUtils.ErrorsList => { const errors = {}; const waypointValue = values[`waypoint${waypointIndex}`] || ''; if (isOffline && waypointValue !== '' && !ValidationUtils.isValidAddress(waypointValue)) { @@ -118,7 +118,7 @@ function WaypointEditor({ const saveWaypoint = (waypoint: OnyxTypes.RecentWaypoint) => Transaction.saveWaypoint(transactionID, waypointIndex, waypoint, isEditingWaypoint); - const submit = (values: Values) => { + const submit = (values: WaypointValues) => { const waypointValue = values[`waypoint${waypointIndex}`] || ''; // Allows letting you set a waypoint to an empty value From 02dbc360a4068ba132d3f2af9bd6badd594c0105 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Mon, 15 Jan 2024 13:08:51 +0100 Subject: [PATCH 08/20] fix: move changes to new file --- src/ROUTES.ts | 2 +- src/libs/Navigation/types.ts | 8 + src/pages/iou/MoneyRequestWaypointPage.tsx | 36 ++++ .../NewDistanceRequestWaypointEditorPage.tsx | 52 ----- ...Waypoint.js => IOURequestStepWaypoint.tsx} | 181 +++++++++--------- 5 files changed, 132 insertions(+), 147 deletions(-) create mode 100644 src/pages/iou/MoneyRequestWaypointPage.tsx delete mode 100644 src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx rename src/pages/iou/request/step/{IOURequestStepWaypoint.js => IOURequestStepWaypoint.tsx} (67%) diff --git a/src/ROUTES.ts b/src/ROUTES.ts index 37003a09a0cd..4fda2e3ef3da 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -494,4 +494,4 @@ type RouteIsPlainString = IsEqual; */ type Route = RouteIsPlainString extends true ? never : AllRoutes; -export type {Route}; +export type {Route, AllRoutes}; diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index 8563db7db172..e044f0b16f33 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -3,6 +3,7 @@ import type {CommonActions, NavigationContainerRefWithCurrent, NavigationHelpers import type {ValueOf} from 'type-fest'; import type CONST from '@src/CONST'; import type NAVIGATORS from '@src/NAVIGATORS'; +import {AllRoutes} from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; type NavigationRef = NavigationContainerRefWithCurrent; @@ -226,6 +227,13 @@ type MoneyRequestNavigatorParamList = { reportID: string; backTo: string; }; + [SCREENS.MONEY_REQUEST.STEP_WAYPOINT]: { + iouType: ValueOf; + reportID: string; + backTo: AllRoutes | undefined; + action: ValueOf; + pageIndex: string; + }; [SCREENS.MONEY_REQUEST.MERCHANT]: { iouType: string; reportID: string; diff --git a/src/pages/iou/MoneyRequestWaypointPage.tsx b/src/pages/iou/MoneyRequestWaypointPage.tsx new file mode 100644 index 000000000000..ce31e58514f5 --- /dev/null +++ b/src/pages/iou/MoneyRequestWaypointPage.tsx @@ -0,0 +1,36 @@ +import type {StackScreenProps} from '@react-navigation/stack'; +import React from 'react'; +import {withOnyx} from 'react-native-onyx'; +import type {MoneyRequestNavigatorParamList} from '@libs/Navigation/types'; +import ONYXKEYS from '@src/ONYXKEYS'; +import type SCREENS from '@src/SCREENS'; +import IOURequestStepWaypoint from './request/step/IOURequestStepWaypoint'; + +type MoneyRequestWaypointPageOnyxProps = { + transactionID: string | undefined; +}; +type MoneyRequestWaypointPageProps = StackScreenProps & MoneyRequestWaypointPageOnyxProps; + +// This component is responsible for grabbing the transactionID from the IOU key +// You can't use Onyx props in the withOnyx mapping, so we need to set up and access the transactionID here, and then pass it down so that WaypointEditor can subscribe to the transaction. +function MoneyRequestWaypointPage({transactionID = '', route}: MoneyRequestWaypointPageProps) { + return ( + // @ts-expect-error TODO: Remove this once withFullTransactionOrNotFound is migrated to TypeScript. + + ); +} + +MoneyRequestWaypointPage.displayName = 'MoneyRequestWaypointPage'; + +export default withOnyx({ + transactionID: {key: ONYXKEYS.IOU, selector: (iou) => iou?.transactionID}, +})(MoneyRequestWaypointPage); diff --git a/src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx b/src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx deleted file mode 100644 index 8456135c6101..000000000000 --- a/src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import type {StackScreenProps} from '@react-navigation/stack'; -import React from 'react'; -import {withOnyx} from 'react-native-onyx'; -import type {MoneyRequestNavigatorParamList} from '@libs/Navigation/types'; -import ONYXKEYS from '@src/ONYXKEYS'; -<<<<<<<< HEAD:src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx -import type SCREENS from '@src/SCREENS'; -import WaypointEditor from './WaypointEditor'; -======== -import IOURequestStepWaypoint from './request/step/IOURequestStepWaypoint'; ->>>>>>>> f268c39c331305c49dbb80a0d0e59984289ecb25:src/pages/iou/MoneyRequestWaypointPage.js - -type NewDistanceRequestWaypointEditorPageOnyxProps = { - transactionID: string | undefined; -}; -type NewDistanceRequestWaypointEditorPageProps = StackScreenProps & NewDistanceRequestWaypointEditorPageOnyxProps; - -// This component is responsible for grabbing the transactionID from the IOU key -// You can't use Onyx props in the withOnyx mapping, so we need to set up and access the transactionID here, and then pass it down so that WaypointEditor can subscribe to the transaction. -<<<<<<<< HEAD:src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx -function NewDistanceRequestWaypointEditorPage({transactionID = '', route}: NewDistanceRequestWaypointEditorPageProps) { -======== -function MoneyRequestWaypointPage({transactionID, route}) { ->>>>>>>> f268c39c331305c49dbb80a0d0e59984289ecb25:src/pages/iou/MoneyRequestWaypointPage.js - return ( - - ); -} - -<<<<<<<< HEAD:src/pages/iou/NewDistanceRequestWaypointEditorPage.tsx -NewDistanceRequestWaypointEditorPage.displayName = 'NewDistanceRequestWaypointEditorPage'; - -export default withOnyx({ - transactionID: {key: ONYXKEYS.IOU, selector: (iou) => iou?.transactionID}, -})(NewDistanceRequestWaypointEditorPage); -======== -MoneyRequestWaypointPage.displayName = 'MoneyRequestWaypointPage'; -MoneyRequestWaypointPage.propTypes = propTypes; -MoneyRequestWaypointPage.defaultProps = defaultProps; -export default withOnyx({ - transactionID: {key: ONYXKEYS.IOU, selector: (iou) => iou && iou.transactionID}, -})(MoneyRequestWaypointPage); ->>>>>>>> f268c39c331305c49dbb80a0d0e59984289ecb25:src/pages/iou/MoneyRequestWaypointPage.js diff --git a/src/pages/iou/request/step/IOURequestStepWaypoint.js b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx similarity index 67% rename from src/pages/iou/request/step/IOURequestStepWaypoint.js rename to src/pages/iou/request/step/IOURequestStepWaypoint.tsx index 1087018eeed9..f03d6299b873 100644 --- a/src/pages/iou/request/step/IOURequestStepWaypoint.js +++ b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx @@ -1,10 +1,10 @@ import {useNavigation} from '@react-navigation/native'; -import lodashGet from 'lodash/get'; -import PropTypes from 'prop-types'; import React, {useMemo, useRef, useState} from 'react'; import {View} from 'react-native'; +import type {TextInput} from 'react-native'; import {withOnyx} from 'react-native-onyx'; -import _ from 'underscore'; +import type {OnyxEntry} from 'react-native-onyx'; +import type {ValueOf} from 'type-fest'; import AddressSearch from '@components/AddressSearch'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; import ConfirmModal from '@components/ConfirmModal'; @@ -13,79 +13,76 @@ import InputWrapperWithRef from '@components/Form/InputWrapper'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import * as Expensicons from '@components/Icon/Expensicons'; import ScreenWrapper from '@components/ScreenWrapper'; -import transactionPropTypes from '@components/transactionPropTypes'; import useLocalize from '@hooks/useLocalize'; import useLocationBias from '@hooks/useLocationBias'; import useNetwork from '@hooks/useNetwork'; import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; -import compose from '@libs/compose'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; import * as ValidationUtils from '@libs/ValidationUtils'; import * as Transaction from '@userActions/Transaction'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; +import type {AllRoutes} from '@src/ROUTES'; import ROUTES from '@src/ROUTES'; -import IOURequestStepRoutePropTypes from './IOURequestStepRoutePropTypes'; +import type * as OnyxTypes from '@src/types/onyx'; +import type {Waypoint} from '@src/types/onyx/Transaction'; +import {isEmptyObject} from '@src/types/utils/EmptyObject'; import withFullTransactionOrNotFound from './withFullTransactionOrNotFound'; import withWritableReportOrNotFound from './withWritableReportOrNotFound'; -const propTypes = { - /** Navigation route context info provided by react navigation */ - route: IOURequestStepRoutePropTypes.isRequired, +type Location = { + lat?: number; + lng?: number; +}; - /* Onyx props */ - /** The optimistic transaction for this request */ - transaction: transactionPropTypes, +type Geometry = { + location: Location; +}; - /* Current location coordinates of the user */ - userLocation: PropTypes.shape({ - /** Latitude of the location */ - latitude: PropTypes.number, +type WaypointValues = Record; - /** Longitude of the location */ - longitude: PropTypes.number, - }), +type MappedWaypoint = { + /** Waypoint name */ + name?: string; - /** Recent waypoints that the user has selected */ - recentWaypoints: PropTypes.arrayOf( - PropTypes.shape({ - /** The name of the location */ - name: PropTypes.string, + /** Waypoint description */ + description: string; - /** A description of the location (usually the address) */ - description: PropTypes.string, + /** Waypoint geometry object cointaing coordinates */ + geometry: Geometry; +}; - /** Data required by the google auto complete plugin to know where to put the markers on the map */ - geometry: PropTypes.shape({ - /** Data about the location */ - location: PropTypes.shape({ - /** Latitude of the location */ - lat: PropTypes.number, +type IOURequestStepWaypointOnyxProps = { + /** List of recent waypoints */ + recentWaypoints: OnyxEntry; - /** Longitude of the location */ - lng: PropTypes.number, - }), - }), - }), - ), + userLocation: OnyxEntry; }; -const defaultProps = { - recentWaypoints: [], - transaction: {}, - userLocation: undefined, -}; +type IOURequestStepWaypointProps = { + route: { + params: { + iouType: ValueOf; + transactionID: string; + reportID: string; + backTo: AllRoutes | undefined; + action: ValueOf; + pageIndex: string; + }; + }; + transaction: OnyxEntry; +} & IOURequestStepWaypointOnyxProps; function IOURequestStepWaypoint({ - recentWaypoints, route: { params: {action, backTo, iouType, pageIndex, reportID, transactionID}, }, transaction, + recentWaypoints = [], userLocation, -}) { +}: IOURequestStepWaypointProps) { const styles = useThemeStyles(); const {windowWidth} = useWindowDimensions(); const [isDeleteStopModalOpen, setIsDeleteStopModalOpen] = useState(false); @@ -93,12 +90,12 @@ function IOURequestStepWaypoint({ const isFocused = navigation.isFocused(); const {translate} = useLocalize(); const {isOffline} = useNetwork(); - const textInput = useRef(null); + const textInput = useRef(null); const parsedWaypointIndex = parseInt(pageIndex, 10); - const allWaypoints = lodashGet(transaction, 'comment.waypoints', {}); - const currentWaypoint = lodashGet(allWaypoints, `waypoint${pageIndex}`, {}); - const waypointCount = _.size(allWaypoints); - const filledWaypointCount = _.size(_.filter(allWaypoints, (waypoint) => !_.isEmpty(waypoint))); + const allWaypoints = transaction?.comment.waypoints ?? {}; + const currentWaypoint = allWaypoints[`waypoint${pageIndex}`] ?? {}; + const waypointCount = Object.keys(allWaypoints).length; + const filledWaypointCount = Object.values(allWaypoints).filter((waypoint) => !isEmptyObject(waypoint)).length; const waypointDescriptionKey = useMemo(() => { switch (parsedWaypointIndex) { @@ -112,14 +109,14 @@ function IOURequestStepWaypoint({ }, [parsedWaypointIndex, waypointCount]); const locationBias = useLocationBias(allWaypoints, userLocation); - const waypointAddress = lodashGet(currentWaypoint, 'address', ''); + const waypointAddress = currentWaypoint.address ?? ''; // Hide the menu when there is only start and finish waypoint const shouldShowThreeDotsButton = waypointCount > 2; const shouldDisableEditor = isFocused && (Number.isNaN(parsedWaypointIndex) || parsedWaypointIndex < 0 || parsedWaypointIndex > waypointCount || (filledWaypointCount < 2 && parsedWaypointIndex >= waypointCount)); - const validate = (values) => { + const validate = (values: WaypointValues): ErrorUtils.ErrorsList => { const errors = {}; const waypointValue = values[`waypoint${pageIndex}`] || ''; if (isOffline && waypointValue !== '' && !ValidationUtils.isValidAddress(waypointValue)) { @@ -135,9 +132,9 @@ function IOURequestStepWaypoint({ return errors; }; - const saveWaypoint = (waypoint) => Transaction.saveWaypoint(transactionID, pageIndex, waypoint, action === CONST.IOU.ACTION.CREATE); + const saveWaypoint = (waypoint: OnyxTypes.RecentWaypoint) => Transaction.saveWaypoint(transactionID, pageIndex, waypoint, action === CONST.IOU.ACTION.CREATE); - const submit = (values) => { + const submit = (values: WaypointValues) => { const waypointValue = values[`waypoint${pageIndex}`] || ''; // Allows letting you set a waypoint to an empty value @@ -149,10 +146,8 @@ function IOURequestStepWaypoint({ // Therefore, we're going to save the waypoint as just the address, and the lat/long will be filled in on the backend if (isOffline && waypointValue) { const waypoint = { - lat: null, - lng: null, address: waypointValue, - name: values.name || null, + name: values.name, }; saveWaypoint(waypoint); } @@ -167,18 +162,12 @@ function IOURequestStepWaypoint({ Navigation.goBack(ROUTES.MONEY_REQUEST_DISTANCE_TAB.getRoute(iouType)); }; - /** - * @param {Object} values - * @param {String} values.lat - * @param {String} values.lng - * @param {String} values.address - */ - const selectWaypoint = (values) => { + const selectWaypoint = (values: Waypoint) => { const waypoint = { lat: values.lat, lng: values.lng, - address: values.address, - name: values.name || null, + address: values.address ?? '', + name: values.name, }; Transaction.saveWaypoint(transactionID, pageIndex, waypoint, action === CONST.IOU.ACTION.CREATE); if (backTo) { @@ -191,7 +180,7 @@ function IOURequestStepWaypoint({ return ( textInput.current && textInput.current.focus()} + onEntryTransitionEnd={() => textInput.current?.focus()} shouldEnableMaxHeight testID={IOURequestStepWaypoint.displayName} > @@ -222,6 +211,7 @@ function IOURequestStepWaypoint({ cancelText={translate('common.cancel')} danger /> + {/* @ts-expect-error TODO: Remove this once Form (https://github.com/Expensify/App/issues/25109) is migrated to TypeScript. */} (textInput.current = e)} + ref={(e) => { + textInput.current = e; + }} hint={!isOffline ? 'distance.errors.selectSuggestedAddress' : ''} containerStyles={[styles.mt4]} label={translate('distance.address')} @@ -267,32 +260,32 @@ function IOURequestStepWaypoint({ } IOURequestStepWaypoint.displayName = 'IOURequestStepWaypoint'; -IOURequestStepWaypoint.propTypes = propTypes; -IOURequestStepWaypoint.defaultProps = defaultProps; -export default compose( - withWritableReportOrNotFound, - withFullTransactionOrNotFound, - withOnyx({ - userLocation: { - key: ONYXKEYS.USER_LOCATION, - }, - recentWaypoints: { - key: ONYXKEYS.NVP_RECENT_WAYPOINTS, +// eslint-disable-next-line rulesdir/no-negated-variables +const IOURequestStepWaypointWithWritableReportOrNotFound = withWritableReportOrNotFound(IOURequestStepWaypoint); +// eslint-disable-next-line rulesdir/no-negated-variables +const IOURequestStepWaypointWithFullTransactionOrNotFound = withFullTransactionOrNotFound(IOURequestStepWaypointWithWritableReportOrNotFound); - // Only grab the most recent 5 waypoints because that's all that is shown in the UI. This also puts them into the format of data - // that the google autocomplete component expects for it's "predefined places" feature. - selector: (waypoints) => - _.map(waypoints ? waypoints.slice(0, 5) : [], (waypoint) => ({ - name: waypoint.name, - description: waypoint.address, - geometry: { - location: { - lat: waypoint.lat, - lng: waypoint.lng, - }, +export default withOnyx({ + userLocation: { + key: ONYXKEYS.USER_LOCATION, + }, + recentWaypoints: { + key: ONYXKEYS.NVP_RECENT_WAYPOINTS, + + // Only grab the most recent 5 waypoints because that's all that is shown in the UI. This also puts them into the format of data + // that the google autocomplete component expects for it's "predefined places" feature. + selector: (waypoints) => + (waypoints ? waypoints.slice(0, 5) : []).map((waypoint) => ({ + name: waypoint.name, + description: waypoint.address, + geometry: { + location: { + lat: waypoint.lat, + lng: waypoint.lng, }, - })), - }, - }), -)(IOURequestStepWaypoint); + }, + })), + }, + // @ts-expect-error TODO: Remove this once withFullTransactionOrNotFound and IOURequestStepWaypointWithWritableReportOrNotFound is migrated to TypeScript. +})(IOURequestStepWaypointWithFullTransactionOrNotFound); From e6164a2c0561f9cd1497289e558a3cc13acc56ce Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Mon, 15 Jan 2024 13:30:46 +0100 Subject: [PATCH 09/20] fix: type errors --- src/hooks/useLocationBias.ts | 2 +- src/libs/Navigation/types.ts | 2 +- src/libs/actions/Transaction.ts | 5 ++++- src/pages/iou/MoneyRequestEditWaypointPage.tsx | 15 --------------- .../iou/request/step/IOURequestStepWaypoint.tsx | 2 ++ 5 files changed, 8 insertions(+), 18 deletions(-) delete mode 100644 src/pages/iou/MoneyRequestEditWaypointPage.tsx diff --git a/src/hooks/useLocationBias.ts b/src/hooks/useLocationBias.ts index 607b1bfbc0d2..9efd13298bbb 100644 --- a/src/hooks/useLocationBias.ts +++ b/src/hooks/useLocationBias.ts @@ -1,6 +1,6 @@ import {useMemo} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; -import type {Location} from '@pages/iou/WaypointEditor'; +import type {Location} from '@pages/iou/request/step/IOURequestStepWaypoint'; import type {UserLocation} from '@src/types/onyx'; /** diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index e044f0b16f33..24cf74562047 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -3,7 +3,7 @@ import type {CommonActions, NavigationContainerRefWithCurrent, NavigationHelpers import type {ValueOf} from 'type-fest'; import type CONST from '@src/CONST'; import type NAVIGATORS from '@src/NAVIGATORS'; -import {AllRoutes} from '@src/ROUTES'; +import type {AllRoutes} from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; type NavigationRef = NavigationContainerRefWithCurrent; diff --git a/src/libs/actions/Transaction.ts b/src/libs/actions/Transaction.ts index 5f2e1186ec32..90d557188238 100644 --- a/src/libs/actions/Transaction.ts +++ b/src/libs/actions/Transaction.ts @@ -102,6 +102,9 @@ function saveWaypoint(transactionID: string, index: string, waypoint: RecentWayp } function removeWaypoint(transaction: OnyxEntry, currentIndex: string, isDraft?: boolean) { + if (!transaction) { + return; + } // Index comes from the route params and is a string const index = Number(currentIndex); const existingWaypoints = transaction?.comment?.waypoints ?? {}; @@ -130,7 +133,7 @@ function removeWaypoint(transaction: OnyxEntry, currentIndex: strin // Doing a deep clone of the transaction to avoid mutating the original object and running into a cache issue when using Onyx.set let newTransaction: Transaction = { // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style - ...(transaction as Transaction), + ...transaction, comment: { ...transaction?.comment, waypoints: reIndexedWaypoints, diff --git a/src/pages/iou/MoneyRequestEditWaypointPage.tsx b/src/pages/iou/MoneyRequestEditWaypointPage.tsx deleted file mode 100644 index 478b076e1991..000000000000 --- a/src/pages/iou/MoneyRequestEditWaypointPage.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import type {StackScreenProps} from '@react-navigation/stack'; -import React from 'react'; -import type {MoneyRequestNavigatorParamList} from '@libs/Navigation/types'; -import type SCREENS from '@src/SCREENS'; -import WaypointEditor from './WaypointEditor'; - -type MoneyRequestEditWaypointPageProps = StackScreenProps; - -function MoneyRequestEditWaypointPage({route}: MoneyRequestEditWaypointPageProps) { - return ; -} - -MoneyRequestEditWaypointPage.displayName = 'MoneyRequestEditWaypointPage'; - -export default MoneyRequestEditWaypointPage; diff --git a/src/pages/iou/request/step/IOURequestStepWaypoint.tsx b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx index f03d6299b873..ff6ec5d5f25c 100644 --- a/src/pages/iou/request/step/IOURequestStepWaypoint.tsx +++ b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx @@ -289,3 +289,5 @@ export default withOnyx Date: Mon, 15 Jan 2024 17:41:10 +0100 Subject: [PATCH 10/20] fix: types --- src/pages/iou/request/step/IOURequestStepWaypoint.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/iou/request/step/IOURequestStepWaypoint.tsx b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx index ff6ec5d5f25c..675b2f0b2c68 100644 --- a/src/pages/iou/request/step/IOURequestStepWaypoint.tsx +++ b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx @@ -24,7 +24,7 @@ import * as ValidationUtils from '@libs/ValidationUtils'; import * as Transaction from '@userActions/Transaction'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; -import type {AllRoutes} from '@src/ROUTES'; +import type {Route as Routes} from '@src/ROUTES'; import ROUTES from '@src/ROUTES'; import type * as OnyxTypes from '@src/types/onyx'; import type {Waypoint} from '@src/types/onyx/Transaction'; @@ -67,7 +67,7 @@ type IOURequestStepWaypointProps = { iouType: ValueOf; transactionID: string; reportID: string; - backTo: AllRoutes | undefined; + backTo: Routes | undefined; action: ValueOf; pageIndex: string; }; From 5190bd1eda61af17290b6e007b6e732d04c31823 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Fri, 2 Feb 2024 14:18:39 +0100 Subject: [PATCH 11/20] fix: typecheck --- src/ONYXKEYS.ts | 4 +- src/components/AddressSearch/index.tsx | 8 +-- src/components/AddressSearch/types.ts | 6 +- src/hooks/useLocationBias.ts | 6 +- src/libs/ValidationUtils.ts | 7 +- .../request/step/IOURequestStepWaypoint.tsx | 72 +++++++------------ src/types/onyx/Form.ts | 5 +- src/types/onyx/RecentWaypoint.ts | 2 +- src/types/onyx/index.ts | 2 + 9 files changed, 50 insertions(+), 62 deletions(-) diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts index 88b740e0e6c8..24812c2d690c 100755 --- a/src/ONYXKEYS.ts +++ b/src/ONYXKEYS.ts @@ -528,8 +528,8 @@ type OnyxValues = { [ONYXKEYS.FORMS.MONEY_REQUEST_DATE_FORM_DRAFT]: OnyxTypes.Form; [ONYXKEYS.FORMS.NEW_CONTACT_METHOD_FORM]: OnyxTypes.Form; [ONYXKEYS.FORMS.NEW_CONTACT_METHOD_FORM_DRAFT]: OnyxTypes.Form; - [ONYXKEYS.FORMS.WAYPOINT_FORM]: OnyxTypes.Form; - [ONYXKEYS.FORMS.WAYPOINT_FORM_DRAFT]: OnyxTypes.Form; + [ONYXKEYS.FORMS.WAYPOINT_FORM]: OnyxTypes.WaypointForm; + [ONYXKEYS.FORMS.WAYPOINT_FORM_DRAFT]: OnyxTypes.WaypointForm; [ONYXKEYS.FORMS.SETTINGS_STATUS_SET_FORM]: OnyxTypes.Form; [ONYXKEYS.FORMS.SETTINGS_STATUS_SET_FORM_DRAFT]: OnyxTypes.Form; [ONYXKEYS.FORMS.SETTINGS_STATUS_CLEAR_DATE_FORM]: OnyxTypes.Form; diff --git a/src/components/AddressSearch/index.tsx b/src/components/AddressSearch/index.tsx index 89e87eeebe54..2b71a0ee14d5 100644 --- a/src/components/AddressSearch/index.tsx +++ b/src/components/AddressSearch/index.tsx @@ -272,7 +272,7 @@ function AddressSearch( const renderHeaderComponent = () => ( <> - {predefinedPlaces.length > 0 && ( + {predefinedPlaces?.length && ( <> {/* This will show current location button in list if there are some recent destinations */} {shouldShowCurrentLocationButton && ( @@ -339,7 +339,7 @@ function AddressSearch( fetchDetails suppressDefaultStyles enablePoweredByContainer={false} - predefinedPlaces={predefinedPlaces} + predefinedPlaces={predefinedPlaces ?? undefined} listEmptyComponent={listEmptyComponent} listLoaderComponent={listLoader} renderHeaderComponent={renderHeaderComponent} @@ -398,10 +398,10 @@ function AddressSearch( if (inputID) { onInputChange?.(text); } else { - onInputChange({street: text}); + onInputChange?.({street: text}); } // If the text is empty and we have no predefined places, we set displayListViewBorder to false to prevent UI flickering - if (!text && !predefinedPlaces.length) { + if (!text && !predefinedPlaces?.length) { setDisplayListViewBorder(false); } }, diff --git a/src/components/AddressSearch/types.ts b/src/components/AddressSearch/types.ts index 8016f1b2ea39..1f137d794404 100644 --- a/src/components/AddressSearch/types.ts +++ b/src/components/AddressSearch/types.ts @@ -19,6 +19,8 @@ type RenamedInputKeysProps = { lat: string; lng: string; zipCode: string; + address?: string; + country?: string; }; type OnPressProps = { @@ -58,7 +60,7 @@ type AddressSearchProps = { defaultValue?: string; /** A callback function when the value of this field has changed */ - onInputChange: (value: string | number | RenamedInputKeysProps | StreetValue, key?: string) => void; + onInputChange?: (value: string | number | RenamedInputKeysProps | StreetValue, key?: string) => void; /** A callback function when an address has been auto-selected */ onPress?: (props: OnPressProps) => void; @@ -73,7 +75,7 @@ type AddressSearchProps = { canUseCurrentLocation?: boolean; /** A list of predefined places that can be shown when the user isn't searching for something */ - predefinedPlaces?: Place[]; + predefinedPlaces?: Place[] | null; /** A map of inputID key names */ renamedInputKeys: RenamedInputKeysProps; diff --git a/src/hooks/useLocationBias.ts b/src/hooks/useLocationBias.ts index 9efd13298bbb..e18aba4a907c 100644 --- a/src/hooks/useLocationBias.ts +++ b/src/hooks/useLocationBias.ts @@ -1,18 +1,18 @@ import {useMemo} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; -import type {Location} from '@pages/iou/request/step/IOURequestStepWaypoint'; import type {UserLocation} from '@src/types/onyx'; +import type {WaypointCollection} from '@src/types/onyx/Transaction'; /** * Construct the rectangular boundary based on user location and waypoints */ -export default function useLocationBias(allWaypoints: Record, userLocation?: OnyxEntry) { +export default function useLocationBias(allWaypoints: WaypointCollection, userLocation?: OnyxEntry) { return useMemo(() => { const hasFilledWaypointCount = Object.values(allWaypoints).some((waypoint) => Object.keys(waypoint).length > 0); // If there are no filled wayPoints and if user's current location cannot be retrieved, // it is futile to arrive at a biased location. Let's return if (!hasFilledWaypointCount && userLocation === undefined) { - return null; + return undefined; } // Gather the longitudes and latitudes from filled waypoints. diff --git a/src/libs/ValidationUtils.ts b/src/libs/ValidationUtils.ts index 9b2b1d01b80b..644c096b6ad4 100644 --- a/src/libs/ValidationUtils.ts +++ b/src/libs/ValidationUtils.ts @@ -6,6 +6,7 @@ import isEmpty from 'lodash/isEmpty'; import isObject from 'lodash/isObject'; import CONST from '@src/CONST'; import type {Report} from '@src/types/onyx'; +import type {FormValueType} from '@src/types/onyx/Form'; import type * as OnyxCommon from '@src/types/onyx/OnyxCommon'; import * as CardUtils from './CardUtils'; import DateUtils from './DateUtils'; @@ -35,7 +36,11 @@ function validateCardNumber(value: string): boolean { /** * Validating that this is a valid address (PO boxes are not allowed) */ -function isValidAddress(value: string): boolean { +function isValidAddress(value: FormValueType): boolean { + if (typeof value !== 'string') { + return false; + } + if (!CONST.REGEX.ANY_VALUE.test(value) || value.match(CONST.REGEX.EMOJIS)) { return false; } diff --git a/src/pages/iou/request/step/IOURequestStepWaypoint.tsx b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx index 19be7b6a1254..0b1f917212d5 100644 --- a/src/pages/iou/request/step/IOURequestStepWaypoint.tsx +++ b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx @@ -2,6 +2,7 @@ import {useNavigation} from '@react-navigation/native'; import React, {useMemo, useRef, useState} from 'react'; import {View} from 'react-native'; import type {TextInput} from 'react-native'; +import type {Place} from 'react-native-google-places-autocomplete'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; import type {ValueOf} from 'type-fest'; @@ -27,36 +28,15 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type {Route as Routes} from '@src/ROUTES'; import ROUTES from '@src/ROUTES'; import type * as OnyxTypes from '@src/types/onyx'; +import type {Errors} from '@src/types/onyx/OnyxCommon'; import type {Waypoint} from '@src/types/onyx/Transaction'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; import withFullTransactionOrNotFound from './withFullTransactionOrNotFound'; import withWritableReportOrNotFound from './withWritableReportOrNotFound'; -type Location = { - lat?: number; - lng?: number; -}; - -type Geometry = { - location: Location; -}; - -type WaypointValues = Record; - -type MappedWaypoint = { - /** Waypoint name */ - name?: string; - - /** Waypoint description */ - description: string; - - /** Waypoint geometry object cointaing coordinates */ - geometry: Geometry; -}; - type IOURequestStepWaypointOnyxProps = { /** List of recent waypoints */ - recentWaypoints: OnyxEntry; + recentWaypoints: OnyxEntry; userLocation: OnyxEntry; }; @@ -109,16 +89,16 @@ function IOURequestStepWaypoint({ }, [parsedWaypointIndex, waypointCount]); const locationBias = useLocationBias(allWaypoints, userLocation); - const waypointAddress = currentWaypoint.address ?? ''; + const waypointAddress = currentWaypoint.address; // Hide the menu when there is only start and finish waypoint const shouldShowThreeDotsButton = waypointCount > 2; const shouldDisableEditor = isFocused && (Number.isNaN(parsedWaypointIndex) || parsedWaypointIndex < 0 || parsedWaypointIndex > waypointCount || (filledWaypointCount < 2 && parsedWaypointIndex >= waypointCount)); - const validate = (values: WaypointValues): ErrorUtils.ErrorsList => { + const validate = (values: Record): Errors => { const errors = {}; - const waypointValue = values[`waypoint${pageIndex}`] || ''; + const waypointValue = values[`waypoint${pageIndex}`] ?? ''; if (isOffline && waypointValue !== '' && !ValidationUtils.isValidAddress(waypointValue)) { ErrorUtils.addErrorMessage(errors, `waypoint${pageIndex}`, 'bankAccount.error.address'); } @@ -134,9 +114,8 @@ function IOURequestStepWaypoint({ const saveWaypoint = (waypoint: OnyxTypes.RecentWaypoint) => Transaction.saveWaypoint(transactionID, pageIndex, waypoint, action === CONST.IOU.ACTION.CREATE); - const submit = (values: WaypointValues) => { - const waypointValue = values[`waypoint${pageIndex}`] || ''; - + const submit = (values: Record) => { + const waypointValue = values[`waypoint${pageIndex}`] ?? ''; // Allows letting you set a waypoint to an empty value if (waypointValue === '') { Transaction.removeWaypoint(transaction, pageIndex, true); @@ -166,9 +145,10 @@ function IOURequestStepWaypoint({ const waypoint = { lat: values.lat, lng: values.lng, - address: values.address ?? '', + address: values.address, name: values.name, }; + Transaction.saveWaypoint(transactionID, pageIndex, waypoint, action === CONST.IOU.ACTION.CREATE); if (backTo) { Navigation.goBack(backTo); @@ -213,7 +193,6 @@ function IOURequestStepWaypoint({ cancelText={translate('common.cancel')} danger /> - {/* @ts-expect-error TODO: Remove this once Form (https://github.com/Expensify/App/issues/25109) is migrated to TypeScript. */} { - textInput.current = e; + ref={(e: HTMLElement | null) => { + textInput.current = e as unknown as TextInput; }} hint={!isOffline ? 'distance.errors.selectSuggestedAddress' : ''} containerStyles={[styles.mt4]} @@ -242,14 +220,14 @@ function IOURequestStepWaypoint({ maxInputLength={CONST.FORM_CHARACTER_LIMIT} renamedInputKeys={{ address: `waypoint${pageIndex}`, - city: null, - country: null, - street: null, - street2: null, - zipCode: null, - lat: null, - lng: null, - state: null, + city: '', + country: '', + street: '', + street2: '', + zipCode: '', + lat: '', + lng: '', + state: '', }} predefinedPlaces={recentWaypoints} resultTypes="" @@ -280,16 +258,14 @@ export default withOnyx (waypoints ? waypoints.slice(0, 5) : []).map((waypoint) => ({ name: waypoint.name, - description: waypoint.address, + description: waypoint.address ?? '', geometry: { location: { - lat: waypoint.lat, - lng: waypoint.lng, + lat: waypoint.lat ?? 0, + lng: waypoint.lng ?? 0, }, }, })), }, - // @ts-expect-error TODO: Remove this once withFullTransactionOrNotFound and IOURequestStepWaypointWithWritableReportOrNotFound is migrated to TypeScript. + // @ts-expect-error TODO: Remove this once SettlementButton (https://github.com/Expensify/App/issues/25100) is migrated to TypeScript. })(IOURequestStepWaypointWithFullTransactionOrNotFound); - -export type {Location}; diff --git a/src/types/onyx/Form.ts b/src/types/onyx/Form.ts index 3235f340e723..14d48315d98c 100644 --- a/src/types/onyx/Form.ts +++ b/src/types/onyx/Form.ts @@ -1,7 +1,7 @@ import type * as OnyxCommon from './OnyxCommon'; import type PersonalBankAccount from './PersonalBankAccount'; -type FormValueType = string | boolean | Date | OnyxCommon.Errors; +type FormValueType = string | boolean | Date | OnyxCommon.Errors | number; type BaseForm = { /** Controls the loading state of the form */ @@ -63,6 +63,8 @@ type WorkspaceSettingsForm = Form<{ type ReportFieldEditForm = Form>; +type WaypointForm = Form>; + export default Form; export type { @@ -78,4 +80,5 @@ export type { PersonalBankAccountForm, WorkspaceSettingsForm, ReportFieldEditForm, + WaypointForm, }; diff --git a/src/types/onyx/RecentWaypoint.ts b/src/types/onyx/RecentWaypoint.ts index 4028e59846ce..55232f7ef71d 100644 --- a/src/types/onyx/RecentWaypoint.ts +++ b/src/types/onyx/RecentWaypoint.ts @@ -3,7 +3,7 @@ type RecentWaypoint = { name?: string; /** The full address of the waypoint */ - address: string; + address?: string; /** The lattitude of the waypoint */ lat?: number; diff --git a/src/types/onyx/index.ts b/src/types/onyx/index.ts index 939793b3b4a8..2d3368fcc246 100644 --- a/src/types/onyx/index.ts +++ b/src/types/onyx/index.ts @@ -18,6 +18,7 @@ import type { NewRoomForm, PrivateNotesForm, ReportFieldEditForm, + WaypointForm, WorkspaceSettingsForm, } from './Form'; import type Form from './Form'; @@ -163,4 +164,5 @@ export type { IntroSchoolPrincipalForm, PrivateNotesForm, ReportFieldEditForm, + WaypointForm, }; From 490c77a4e0fcca3d854078b607272fe7b110c64f Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Wed, 7 Feb 2024 14:58:14 +0100 Subject: [PATCH 12/20] fix: typecheck --- src/pages/iou/request/step/IOURequestStepWaypoint.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/iou/request/step/IOURequestStepWaypoint.tsx b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx index 163320fb8333..a33717ba9d03 100644 --- a/src/pages/iou/request/step/IOURequestStepWaypoint.tsx +++ b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx @@ -91,7 +91,7 @@ function IOURequestStepWaypoint({ const locationBias = useLocationBias(allWaypoints, userLocation); const waypointAddress = currentWaypoint.address ?? ''; // Hide the menu when there is only start and finish waypoint - const shouldShowThreeDotsButton = waypointCount > 2 && waypointAddress; + const shouldShowThreeDotsButton = waypointCount > 2 && !!waypointAddress; const shouldDisableEditor = isFocused && (Number.isNaN(parsedWaypointIndex) || parsedWaypointIndex < 0 || parsedWaypointIndex > waypointCount || (filledWaypointCount < 2 && parsedWaypointIndex >= waypointCount)); From 7a7baf928de14c4008165ea276481262d4a88246 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Wed, 14 Feb 2024 12:09:46 +0100 Subject: [PATCH 13/20] fix: typecheck --- src/libs/ValidationUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/ValidationUtils.ts b/src/libs/ValidationUtils.ts index 7c3a1924ee0e..25773286445f 100644 --- a/src/libs/ValidationUtils.ts +++ b/src/libs/ValidationUtils.ts @@ -37,7 +37,7 @@ function validateCardNumber(value: string): boolean { /** * Validating that this is a valid address (PO boxes are not allowed) */ -function isValidAddress(value: FormValueType): boolean { +function isValidAddress(value: string): boolean { if (typeof value !== 'string') { return false; } From 75073fe3c128a60c1303f04b5897a20c9997cf2e Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Wed, 14 Feb 2024 12:19:21 +0100 Subject: [PATCH 14/20] fix: typecheck --- src/libs/ValidationUtils.ts | 4 ++-- src/pages/iou/request/step/IOURequestStepWaypoint.tsx | 9 +++++---- src/types/form/WaypointForm.ts | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/libs/ValidationUtils.ts b/src/libs/ValidationUtils.ts index 25773286445f..41de9e079313 100644 --- a/src/libs/ValidationUtils.ts +++ b/src/libs/ValidationUtils.ts @@ -5,7 +5,7 @@ import isDate from 'lodash/isDate'; import isEmpty from 'lodash/isEmpty'; import isObject from 'lodash/isObject'; import type {OnyxCollection} from 'react-native-onyx'; -import type {FormInputErrors, FormOnyxKeys, FormOnyxValues} from '@components/Form/types'; +import type {FormInputErrors, FormOnyxKeys, FormOnyxValues, FormValue} from '@components/Form/types'; import CONST from '@src/CONST'; import type {OnyxFormKey} from '@src/ONYXKEYS'; import type {Report} from '@src/types/onyx'; @@ -37,7 +37,7 @@ function validateCardNumber(value: string): boolean { /** * Validating that this is a valid address (PO boxes are not allowed) */ -function isValidAddress(value: string): boolean { +function isValidAddress(value: FormValue): boolean { if (typeof value !== 'string') { return false; } diff --git a/src/pages/iou/request/step/IOURequestStepWaypoint.tsx b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx index a33717ba9d03..7e3b0e2c0ee0 100644 --- a/src/pages/iou/request/step/IOURequestStepWaypoint.tsx +++ b/src/pages/iou/request/step/IOURequestStepWaypoint.tsx @@ -11,6 +11,7 @@ import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView import ConfirmModal from '@components/ConfirmModal'; import FormProvider from '@components/Form/FormProvider'; import InputWrapperWithRef from '@components/Form/InputWrapper'; +import type {FormOnyxValues} from '@components/Form/types'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import * as Expensicons from '@components/Icon/Expensicons'; import ScreenWrapper from '@components/ScreenWrapper'; @@ -24,11 +25,11 @@ import Navigation from '@libs/Navigation/Navigation'; import * as ValidationUtils from '@libs/ValidationUtils'; import * as Transaction from '@userActions/Transaction'; import CONST from '@src/CONST'; +import type {TranslationPaths} from '@src/languages/types'; import ONYXKEYS from '@src/ONYXKEYS'; import type {Route as Routes} from '@src/ROUTES'; import ROUTES from '@src/ROUTES'; import type * as OnyxTypes from '@src/types/onyx'; -import type {Errors} from '@src/types/onyx/OnyxCommon'; import type {Waypoint} from '@src/types/onyx/Transaction'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; import withFullTransactionOrNotFound from './withFullTransactionOrNotFound'; @@ -96,7 +97,7 @@ function IOURequestStepWaypoint({ isFocused && (Number.isNaN(parsedWaypointIndex) || parsedWaypointIndex < 0 || parsedWaypointIndex > waypointCount || (filledWaypointCount < 2 && parsedWaypointIndex >= waypointCount)); - const validate = (values: Record): Errors => { + const validate = (values: FormOnyxValues<'waypointForm'>): Partial> => { const errors = {}; const waypointValue = values[`waypoint${pageIndex}`] ?? ''; if (isOffline && waypointValue !== '' && !ValidationUtils.isValidAddress(waypointValue)) { @@ -112,9 +113,9 @@ function IOURequestStepWaypoint({ return errors; }; - const saveWaypoint = (waypoint: OnyxTypes.RecentWaypoint) => Transaction.saveWaypoint(transactionID, pageIndex, waypoint, action === CONST.IOU.ACTION.CREATE); + const saveWaypoint = (waypoint: FormOnyxValues<'waypointForm'>) => Transaction.saveWaypoint(transactionID, pageIndex, waypoint, action === CONST.IOU.ACTION.CREATE); - const submit = (values: Record) => { + const submit = (values: FormOnyxValues<'waypointForm'>) => { const waypointValue = values[`waypoint${pageIndex}`] ?? ''; // Allows letting you set a waypoint to an empty value if (waypointValue === '') { diff --git a/src/types/form/WaypointForm.ts b/src/types/form/WaypointForm.ts index 92d36d0bf003..b9a8fd3a400e 100644 --- a/src/types/form/WaypointForm.ts +++ b/src/types/form/WaypointForm.ts @@ -1,6 +1,6 @@ import type Form from './Form'; -type WaypointForm = Form>; +type WaypointForm = Form; // eslint-disable-next-line import/prefer-default-export export type {WaypointForm}; From 59a03f95558e41f1598b923b9307ec915c2b9fca Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Wed, 14 Feb 2024 12:22:50 +0100 Subject: [PATCH 15/20] fix: typecheck --- src/ONYXKEYS.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts index e8492847a07c..a7c415922a95 100755 --- a/src/ONYXKEYS.ts +++ b/src/ONYXKEYS.ts @@ -403,7 +403,6 @@ type OnyxFormValuesMapping = { [ONYXKEYS.FORMS.MONEY_REQUEST_DATE_FORM]: FormTypes.Form; [ONYXKEYS.FORMS.NEW_CONTACT_METHOD_FORM]: FormTypes.Form; [ONYXKEYS.FORMS.WAYPOINT_FORM]: FormTypes.WaypointForm; - [ONYXKEYS.FORMS.WAYPOINT_FORM_DRAFT]: FormTypes.WaypointForm; [ONYXKEYS.FORMS.SETTINGS_STATUS_SET_FORM]: FormTypes.Form; [ONYXKEYS.FORMS.SETTINGS_STATUS_CLEAR_DATE_FORM]: FormTypes.Form; [ONYXKEYS.FORMS.SETTINGS_STATUS_SET_CLEAR_AFTER_FORM]: FormTypes.Form; From 3aea0ef275bd544b181bc1d90043907e74c684c3 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Wed, 14 Feb 2024 14:01:32 +0100 Subject: [PATCH 16/20] fix: when searching for waypoint --- ios/NewExpensify.xcodeproj/project.pbxproj | 8 ++++---- ios/Podfile.lock | 12 ++++++------ src/components/AddressSearch/index.tsx | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ios/NewExpensify.xcodeproj/project.pbxproj b/ios/NewExpensify.xcodeproj/project.pbxproj index 9b1451b2bf94..a584dc723aff 100644 --- a/ios/NewExpensify.xcodeproj/project.pbxproj +++ b/ios/NewExpensify.xcodeproj/project.pbxproj @@ -630,8 +630,8 @@ "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipMessageCenterResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipPreferenceCenterResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/GoogleSignIn/GoogleSignIn.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", "${PODS_ROOT}/../../node_modules/@expensify/react-native-live-markdown/parser/react-native-live-markdown-parser.js", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( @@ -641,8 +641,8 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipMessageCenterResources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipPreferenceCenterResources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/react-native-live-markdown-parser.js", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -801,8 +801,8 @@ "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipMessageCenterResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipPreferenceCenterResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/GoogleSignIn/GoogleSignIn.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", "${PODS_ROOT}/../../node_modules/@expensify/react-native-live-markdown/parser/react-native-live-markdown-parser.js", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( @@ -812,8 +812,8 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipMessageCenterResources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipPreferenceCenterResources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/react-native-live-markdown-parser.js", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 19a579b846e8..07f4de5188da 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1443,7 +1443,7 @@ PODS: - RNSound/Core (= 0.11.2) - RNSound/Core (0.11.2): - React-Core - - RNSVG (14.0.0): + - RNSVG (14.1.0): - React-Core - SDWebImage (5.17.0): - SDWebImage/Core (= 5.17.0) @@ -1458,7 +1458,7 @@ PODS: - SDWebImage/Core (~> 5.17) - SocketRocket (0.6.1) - Turf (2.7.0) - - VisionCamera (2.16.5): + - VisionCamera (2.16.8): - React - React-callinvoker - React-Core @@ -1982,16 +1982,16 @@ SPEC CHECKSUMS: RNReanimated: 57f436e7aa3d277fbfed05e003230b43428157c0 RNScreens: b582cb834dc4133307562e930e8fa914b8c04ef2 RNSound: 6c156f925295bdc83e8e422e7d8b38d33bc71852 - RNSVG: 255767813dac22db1ec2062c8b7e7b856d4e5ae6 + RNSVG: ba3e7232f45e34b7b47e74472386cf4e1a676d0a SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9 SDWebImageAVIFCoder: 8348fef6d0ec69e129c66c9fe4d74fbfbf366112 SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c SDWebImageWebPCoder: af09429398d99d524cae2fe00f6f0f6e491ed102 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 Turf: 13d1a92d969ca0311bbc26e8356cca178ce95da2 - VisionCamera: fda554d8751e395effcc87749f8b7c198c1031be - Yoga: 13c8ef87792450193e117976337b8527b49e8c03 + VisionCamera: 0a6794d1974aed5d653d0d0cb900493e2583e35a + Yoga: e64aa65de36c0832d04e8c7bd614396c77a80047 PODFILE CHECKSUM: 0ccbb4f2406893c6e9f266dc1e7470dcd72885d2 -COCOAPODS: 1.13.0 +COCOAPODS: 1.12.1 diff --git a/src/components/AddressSearch/index.tsx b/src/components/AddressSearch/index.tsx index 2b71a0ee14d5..8ad26e5a7c46 100644 --- a/src/components/AddressSearch/index.tsx +++ b/src/components/AddressSearch/index.tsx @@ -272,7 +272,7 @@ function AddressSearch( const renderHeaderComponent = () => ( <> - {predefinedPlaces?.length && ( + {(predefinedPlaces?.length ?? 0) > 0 && ( <> {/* This will show current location button in list if there are some recent destinations */} {shouldShowCurrentLocationButton && ( @@ -348,7 +348,7 @@ function AddressSearch( const subtitle = data.isPredefinedPlace ? data.description : data.structured_formatting.secondary_text; return ( - {title && {title}} + {!!title && {title}} {subtitle} ); From 0f847988dc13d577e0a2418f2213d6fb3f95ed32 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Thu, 15 Feb 2024 16:34:41 +0100 Subject: [PATCH 17/20] fix: ci --- Gemfile.lock | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index beb2c1762936..22bcc225878b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,11 +3,12 @@ GEM specs: CFPropertyList (3.0.6) rexml - activesupport (7.0.8) + activesupport (6.1.7.6) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) + zeitwerk (~> 2.3) addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) algoliasearch (1.27.5) @@ -80,7 +81,8 @@ GEM declarative (0.0.20) digest-crc (0.6.5) rake (>= 12.0.0, < 14.0.0) - domain_name (0.6.20240107) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1) emoji_regex (3.2.3) escape (0.0.4) @@ -187,11 +189,11 @@ GEM google-cloud-env (1.6.0) faraday (>= 0.17.3, < 3.0) google-cloud-errors (1.3.1) - google-cloud-storage (1.47.0) + google-cloud-storage (1.37.0) addressable (~> 2.8) digest-crc (~> 0.4) google-apis-iamcredentials_v1 (~> 0.1) - google-apis-storage_v1 (~> 0.31.0) + google-apis-storage_v1 (~> 0.1) google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) @@ -260,6 +262,9 @@ GEM tzinfo (2.0.6) concurrent-ruby (~> 1.0) uber (0.1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.9.1) unicode-display_width (2.5.0) word_wrap (1.0.0) xcodeproj (1.23.0) @@ -273,6 +278,7 @@ GEM rouge (~> 2.0.7) xcpretty-travis-formatter (1.0.1) xcpretty (~> 0.2, >= 0.0.7) + zeitwerk (2.6.13) PLATFORMS arm64-darwin-21 @@ -292,4 +298,4 @@ RUBY VERSION ruby 2.6.10p210 BUNDLED WITH - 2.4.19 + 2.4.18 From e60d866bc58c20f273c46c8b649d6ce1a18a50c4 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Tue, 20 Feb 2024 10:05:25 +0100 Subject: [PATCH 18/20] fix: removed podfile.lock and gemfile --- Gemfile.lock | 301 ------- ios/Podfile.lock | 1997 ---------------------------------------------- 2 files changed, 2298 deletions(-) delete mode 100644 Gemfile.lock delete mode 100644 ios/Podfile.lock diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 22bcc225878b..000000000000 --- a/Gemfile.lock +++ /dev/null @@ -1,301 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (3.0.6) - rexml - activesupport (6.1.7.6) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.6) - public_suffix (>= 2.0.2, < 6.0) - algoliasearch (1.27.5) - httpclient (~> 2.8, >= 2.8.3) - json (>= 1.5.1) - apktools (0.7.4) - rubyzip (~> 2.0) - artifactory (3.0.15) - atomos (0.1.3) - aws-eventstream (1.3.0) - aws-partitions (1.883.0) - aws-sdk-core (3.190.3) - aws-eventstream (~> 1, >= 1.3.0) - aws-partitions (~> 1, >= 1.651.0) - aws-sigv4 (~> 1.8) - jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.76.0) - aws-sdk-core (~> 3, >= 3.188.0) - aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.142.0) - aws-sdk-core (~> 3, >= 3.189.0) - aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.8) - aws-sigv4 (1.8.0) - aws-eventstream (~> 1, >= 1.0.2) - babosa (1.0.4) - claide (1.1.0) - cocoapods (1.13.0) - addressable (~> 2.8) - claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.13.0) - cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.6.0, < 2.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.6.0, < 2.0) - cocoapods-try (>= 1.1.0, < 2.0) - colored2 (~> 3.1) - escape (~> 0.0.4) - fourflusher (>= 2.3.0, < 3.0) - gh_inspector (~> 1.0) - molinillo (~> 0.8.0) - nap (~> 1.0) - ruby-macho (>= 2.3.0, < 3.0) - xcodeproj (>= 1.23.0, < 2.0) - cocoapods-core (1.13.0) - activesupport (>= 5.0, < 8) - addressable (~> 2.8) - algoliasearch (~> 1.0) - concurrent-ruby (~> 1.1) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - netrc (~> 0.11) - public_suffix (~> 4.0) - typhoeus (~> 1.0) - cocoapods-deintegrate (1.0.5) - cocoapods-downloader (1.6.3) - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.1) - cocoapods-trunk (1.6.0) - nap (>= 0.8, < 2.0) - netrc (~> 0.11) - cocoapods-try (1.2.0) - colored (1.2) - colored2 (3.1.2) - commander (4.6.0) - highline (~> 2.0.0) - concurrent-ruby (1.2.2) - declarative (0.0.20) - digest-crc (0.6.5) - rake (>= 12.0.0, < 14.0.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - dotenv (2.8.1) - emoji_regex (3.2.3) - escape (0.0.4) - ethon (0.16.0) - ffi (>= 1.15.0) - excon (0.109.0) - faraday (1.10.3) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0) - faraday-multipart (~> 1.0) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.0) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - faraday-retry (~> 1.0) - ruby2_keywords (>= 0.0.4) - faraday-cookie_jar (0.0.7) - faraday (>= 0.8.0) - http-cookie (~> 1.0.0) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-multipart (1.0.4) - multipart-post (~> 2) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - faraday-retry (1.0.3) - faraday_middleware (1.2.0) - faraday (~> 1.0) - fastimage (2.3.0) - fastlane (2.219.0) - CFPropertyList (>= 2.3, < 4.0.0) - addressable (>= 2.8, < 3.0.0) - artifactory (~> 3.0) - aws-sdk-s3 (~> 1.0) - babosa (>= 1.0.3, < 2.0.0) - bundler (>= 1.12.0, < 3.0.0) - colored - commander (~> 4.6) - dotenv (>= 2.1.1, < 3.0.0) - emoji_regex (>= 0.1, < 4.0) - excon (>= 0.71.0, < 1.0.0) - faraday (~> 1.0) - faraday-cookie_jar (~> 0.0.6) - faraday_middleware (~> 1.0) - fastimage (>= 2.1.0, < 3.0.0) - gh_inspector (>= 1.1.2, < 2.0.0) - google-apis-androidpublisher_v3 (~> 0.3) - google-apis-playcustomapp_v1 (~> 0.1) - google-cloud-env (>= 1.6.0, < 2.0.0) - google-cloud-storage (~> 1.31) - highline (~> 2.0) - http-cookie (~> 1.0.5) - json (< 3.0.0) - jwt (>= 2.1.0, < 3) - mini_magick (>= 4.9.4, < 5.0.0) - multipart-post (>= 2.0.0, < 3.0.0) - naturally (~> 2.2) - optparse (>= 0.1.1) - plist (>= 3.1.0, < 4.0.0) - rubyzip (>= 2.0.0, < 3.0.0) - security (= 0.1.3) - simctl (~> 1.6.3) - terminal-notifier (>= 2.0.0, < 3.0.0) - terminal-table (~> 3) - tty-screen (>= 0.6.3, < 1.0.0) - tty-spinner (>= 0.8.0, < 1.0.0) - word_wrap (~> 1.0.0) - xcodeproj (>= 1.13.0, < 2.0.0) - xcpretty (~> 0.3.0) - xcpretty-travis-formatter (>= 0.0.3) - fastlane-plugin-aws_s3 (2.1.0) - apktools (~> 0.7) - aws-sdk-s3 (~> 1) - mime-types (~> 3.3) - ffi (1.16.3) - fourflusher (2.3.1) - fuzzy_match (2.0.4) - gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.54.0) - google-apis-core (>= 0.11.0, < 2.a) - google-apis-core (0.11.3) - addressable (~> 2.5, >= 2.5.1) - googleauth (>= 0.16.2, < 2.a) - httpclient (>= 2.8.1, < 3.a) - mini_mime (~> 1.0) - representable (~> 3.0) - retriable (>= 2.0, < 4.a) - rexml - google-apis-iamcredentials_v1 (0.17.0) - google-apis-core (>= 0.11.0, < 2.a) - google-apis-playcustomapp_v1 (0.13.0) - google-apis-core (>= 0.11.0, < 2.a) - google-apis-storage_v1 (0.31.0) - google-apis-core (>= 0.11.0, < 2.a) - google-cloud-core (1.6.1) - google-cloud-env (>= 1.0, < 3.a) - google-cloud-errors (~> 1.0) - google-cloud-env (1.6.0) - faraday (>= 0.17.3, < 3.0) - google-cloud-errors (1.3.1) - google-cloud-storage (1.37.0) - addressable (~> 2.8) - digest-crc (~> 0.4) - google-apis-iamcredentials_v1 (~> 0.1) - google-apis-storage_v1 (~> 0.1) - google-cloud-core (~> 1.6) - googleauth (>= 0.16.2, < 2.a) - mini_mime (~> 1.0) - googleauth (1.8.1) - faraday (>= 0.17.3, < 3.a) - jwt (>= 1.4, < 3.0) - multi_json (~> 1.11) - os (>= 0.9, < 2.0) - signet (>= 0.16, < 2.a) - highline (2.0.3) - http-cookie (1.0.5) - domain_name (~> 0.5) - httpclient (2.8.3) - i18n (1.14.1) - concurrent-ruby (~> 1.0) - jmespath (1.6.2) - json (2.7.1) - jwt (2.7.1) - mime-types (3.5.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2023.1003) - mini_magick (4.12.0) - mini_mime (1.1.5) - minitest (5.20.0) - molinillo (0.8.0) - multi_json (1.15.0) - multipart-post (2.3.0) - nanaimo (0.3.0) - nap (1.1.0) - naturally (2.2.1) - netrc (0.11.0) - optparse (0.4.0) - os (1.1.4) - plist (3.7.1) - public_suffix (4.0.7) - rake (13.1.0) - representable (3.2.0) - declarative (< 0.1.0) - trailblazer-option (>= 0.1.1, < 0.2.0) - uber (< 0.2.0) - retriable (3.1.2) - rexml (3.2.6) - rouge (2.0.7) - ruby-macho (2.5.1) - ruby2_keywords (0.0.5) - rubyzip (2.3.2) - security (0.1.3) - signet (0.18.0) - addressable (~> 2.8) - faraday (>= 0.17.5, < 3.a) - jwt (>= 1.5, < 3.0) - multi_json (~> 1.10) - simctl (1.6.10) - CFPropertyList - naturally - terminal-notifier (2.0.0) - terminal-table (3.0.2) - unicode-display_width (>= 1.1.1, < 3) - trailblazer-option (0.1.2) - tty-cursor (0.7.1) - tty-screen (0.8.2) - tty-spinner (0.9.3) - tty-cursor (~> 0.7) - typhoeus (1.4.1) - ethon (>= 0.9.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - uber (0.1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.9.1) - unicode-display_width (2.5.0) - word_wrap (1.0.0) - xcodeproj (1.23.0) - CFPropertyList (>= 2.3.3, < 4.0) - atomos (~> 0.1.3) - claide (>= 1.0.2, < 2.0) - colored2 (~> 3.1) - nanaimo (~> 0.3.0) - rexml (~> 3.2.4) - xcpretty (0.3.0) - rouge (~> 2.0.7) - xcpretty-travis-formatter (1.0.1) - xcpretty (~> 0.2, >= 0.0.7) - zeitwerk (2.6.13) - -PLATFORMS - arm64-darwin-21 - ruby - universal-darwin-20 - x86_64-darwin-19 - x86_64-linux - -DEPENDENCIES - activesupport (>= 6.1.7.3, < 7.1.0) - cocoapods (~> 1.13) - fastlane (~> 2) - fastlane-plugin-aws_s3 - xcpretty (~> 0) - -RUBY VERSION - ruby 2.6.10p210 - -BUNDLED WITH - 2.4.18 diff --git a/ios/Podfile.lock b/ios/Podfile.lock deleted file mode 100644 index 176dba1cf959..000000000000 --- a/ios/Podfile.lock +++ /dev/null @@ -1,1997 +0,0 @@ -PODS: - - Airship (16.12.1): - - Airship/Automation (= 16.12.1) - - Airship/Basement (= 16.12.1) - - Airship/Core (= 16.12.1) - - Airship/ExtendedActions (= 16.12.1) - - Airship/MessageCenter (= 16.12.1) - - Airship/Automation (16.12.1): - - Airship/Core - - Airship/Basement (16.12.1) - - Airship/Core (16.12.1): - - Airship/Basement - - Airship/ExtendedActions (16.12.1): - - Airship/Core - - Airship/MessageCenter (16.12.1): - - Airship/Core - - Airship/PreferenceCenter (16.12.1): - - Airship/Core - - AirshipFrameworkProxy (2.1.1): - - Airship (= 16.12.1) - - Airship/MessageCenter (= 16.12.1) - - Airship/PreferenceCenter (= 16.12.1) - - AirshipServiceExtension (16.12.5) - - AppAuth (1.6.2): - - AppAuth/Core (= 1.6.2) - - AppAuth/ExternalUserAgent (= 1.6.2) - - AppAuth/Core (1.6.2) - - AppAuth/ExternalUserAgent (1.6.2): - - AppAuth/Core - - boost (1.83.0) - - BVLinearGradient (2.8.1): - - React-Core - - CocoaAsyncSocket (7.6.5) - - DoubleConversion (1.1.6) - - Expo (50.0.4): - - ExpoModulesCore - - ExpoImage (1.10.1): - - ExpoModulesCore - - SDWebImage (~> 5.17.0) - - SDWebImageAVIFCoder (~> 0.10.1) - - SDWebImageSVGCoder (~> 1.7.0) - - SDWebImageWebPCoder (~> 0.13.0) - - ExpoModulesCore (1.11.8): - - glog - - RCT-Folly (= 2022.05.16.00) - - React-Core - - React-NativeModulesApple - - React-RCTAppDelegate - - ReactCommon/turbomodule/core - - FBLazyVector (0.73.2) - - FBReactNativeSpec (0.73.2): - - RCT-Folly (= 2022.05.16.00) - - RCTRequired (= 0.73.2) - - RCTTypeSafety (= 0.73.2) - - React-Core (= 0.73.2) - - React-jsi (= 0.73.2) - - ReactCommon/turbomodule/core (= 0.73.2) - - Firebase/Analytics (8.8.0): - - Firebase/Core - - Firebase/Core (8.8.0): - - Firebase/CoreOnly - - FirebaseAnalytics (~> 8.8.0) - - Firebase/CoreOnly (8.8.0): - - FirebaseCore (= 8.8.0) - - Firebase/Crashlytics (8.8.0): - - Firebase/CoreOnly - - FirebaseCrashlytics (~> 8.8.0) - - Firebase/Performance (8.8.0): - - Firebase/CoreOnly - - FirebasePerformance (~> 8.8.0) - - FirebaseABTesting (8.15.0): - - FirebaseCore (~> 8.0) - - FirebaseAnalytics (8.8.0): - - FirebaseAnalytics/AdIdSupport (= 8.8.0) - - FirebaseCore (~> 8.0) - - FirebaseInstallations (~> 8.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.4) - - GoogleUtilities/MethodSwizzler (~> 7.4) - - GoogleUtilities/Network (~> 7.4) - - "GoogleUtilities/NSData+zlib (~> 7.4)" - - nanopb (~> 2.30908.0) - - FirebaseAnalytics/AdIdSupport (8.8.0): - - FirebaseCore (~> 8.0) - - FirebaseInstallations (~> 8.0) - - GoogleAppMeasurement (= 8.8.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.4) - - GoogleUtilities/MethodSwizzler (~> 7.4) - - GoogleUtilities/Network (~> 7.4) - - "GoogleUtilities/NSData+zlib (~> 7.4)" - - nanopb (~> 2.30908.0) - - FirebaseCore (8.8.0): - - FirebaseCoreDiagnostics (~> 8.0) - - GoogleUtilities/Environment (~> 7.4) - - GoogleUtilities/Logger (~> 7.4) - - FirebaseCoreDiagnostics (8.15.0): - - GoogleDataTransport (~> 9.1) - - GoogleUtilities/Environment (~> 7.7) - - GoogleUtilities/Logger (~> 7.7) - - nanopb (~> 2.30908.0) - - FirebaseCrashlytics (8.8.0): - - FirebaseCore (~> 8.0) - - FirebaseInstallations (~> 8.0) - - GoogleDataTransport (~> 9.0) - - GoogleUtilities/Environment (~> 7.4) - - nanopb (~> 2.30908.0) - - PromisesObjC (< 3.0, >= 1.2) - - FirebaseInstallations (8.15.0): - - FirebaseCore (~> 8.0) - - GoogleUtilities/Environment (~> 7.7) - - GoogleUtilities/UserDefaults (~> 7.7) - - PromisesObjC (< 3.0, >= 1.2) - - FirebasePerformance (8.8.0): - - FirebaseCore (~> 8.0) - - FirebaseInstallations (~> 8.0) - - FirebaseRemoteConfig (~> 8.0) - - GoogleDataTransport (~> 9.0) - - GoogleUtilities/Environment (~> 7.4) - - GoogleUtilities/ISASwizzler (~> 7.4) - - GoogleUtilities/MethodSwizzler (~> 7.4) - - nanopb (~> 2.30908.0) - - FirebaseRemoteConfig (8.15.0): - - FirebaseABTesting (~> 8.0) - - FirebaseCore (~> 8.0) - - FirebaseInstallations (~> 8.0) - - GoogleUtilities/Environment (~> 7.7) - - "GoogleUtilities/NSData+zlib (~> 7.7)" - - Flipper (0.201.0): - - Flipper-Folly (~> 2.6) - - Flipper-Boost-iOSX (1.76.0.1.11) - - Flipper-DoubleConversion (3.2.0.1) - - Flipper-Fmt (7.1.7) - - Flipper-Folly (2.6.10): - - Flipper-Boost-iOSX - - Flipper-DoubleConversion - - Flipper-Fmt (= 7.1.7) - - Flipper-Glog - - libevent (~> 2.1.12) - - OpenSSL-Universal (= 1.1.1100) - - Flipper-Glog (0.5.0.5) - - Flipper-PeerTalk (0.0.4) - - FlipperKit (0.201.0): - - FlipperKit/Core (= 0.201.0) - - FlipperKit/Core (0.201.0): - - Flipper (~> 0.201.0) - - FlipperKit/CppBridge - - FlipperKit/FBCxxFollyDynamicConvert - - FlipperKit/FBDefines - - FlipperKit/FKPortForwarding - - SocketRocket (~> 0.6.0) - - FlipperKit/CppBridge (0.201.0): - - Flipper (~> 0.201.0) - - FlipperKit/FBCxxFollyDynamicConvert (0.201.0): - - Flipper-Folly (~> 2.6) - - FlipperKit/FBDefines (0.201.0) - - FlipperKit/FKPortForwarding (0.201.0): - - CocoaAsyncSocket (~> 7.6) - - Flipper-PeerTalk (~> 0.0.4) - - FlipperKit/FlipperKitHighlightOverlay (0.201.0) - - FlipperKit/FlipperKitLayoutHelpers (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitHighlightOverlay - - FlipperKit/FlipperKitLayoutTextSearchable - - FlipperKit/FlipperKitLayoutIOSDescriptors (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitHighlightOverlay - - FlipperKit/FlipperKitLayoutHelpers - - FlipperKit/FlipperKitLayoutPlugin (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitHighlightOverlay - - FlipperKit/FlipperKitLayoutHelpers - - FlipperKit/FlipperKitLayoutIOSDescriptors - - FlipperKit/FlipperKitLayoutTextSearchable - - FlipperKit/FlipperKitLayoutTextSearchable (0.201.0) - - FlipperKit/FlipperKitNetworkPlugin (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitReactPlugin (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitUserDefaultsPlugin (0.201.0): - - FlipperKit/Core - - FlipperKit/SKIOSNetworkPlugin (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitNetworkPlugin - - fmt (6.2.1) - - glog (0.3.5) - - GoogleAppMeasurement (8.8.0): - - GoogleAppMeasurement/AdIdSupport (= 8.8.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.4) - - GoogleUtilities/MethodSwizzler (~> 7.4) - - GoogleUtilities/Network (~> 7.4) - - "GoogleUtilities/NSData+zlib (~> 7.4)" - - nanopb (~> 2.30908.0) - - GoogleAppMeasurement/AdIdSupport (8.8.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 8.8.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.4) - - GoogleUtilities/MethodSwizzler (~> 7.4) - - GoogleUtilities/Network (~> 7.4) - - "GoogleUtilities/NSData+zlib (~> 7.4)" - - nanopb (~> 2.30908.0) - - GoogleAppMeasurement/WithoutAdIdSupport (8.8.0): - - GoogleUtilities/AppDelegateSwizzler (~> 7.4) - - GoogleUtilities/MethodSwizzler (~> 7.4) - - GoogleUtilities/Network (~> 7.4) - - "GoogleUtilities/NSData+zlib (~> 7.4)" - - nanopb (~> 2.30908.0) - - GoogleDataTransport (9.3.0): - - GoogleUtilities/Environment (~> 7.7) - - nanopb (< 2.30910.0, >= 2.30908.0) - - PromisesObjC (< 3.0, >= 1.2) - - GoogleSignIn (7.0.0): - - AppAuth (~> 1.5) - - GTMAppAuth (< 3.0, >= 1.3) - - GTMSessionFetcher/Core (< 4.0, >= 1.1) - - GoogleUtilities/AppDelegateSwizzler (7.12.0): - - GoogleUtilities/Environment - - GoogleUtilities/Logger - - GoogleUtilities/Network - - GoogleUtilities/Environment (7.12.0): - - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/ISASwizzler (7.12.0) - - GoogleUtilities/Logger (7.12.0): - - GoogleUtilities/Environment - - GoogleUtilities/MethodSwizzler (7.12.0): - - GoogleUtilities/Logger - - GoogleUtilities/Network (7.12.0): - - GoogleUtilities/Logger - - "GoogleUtilities/NSData+zlib" - - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (7.12.0)" - - GoogleUtilities/Reachability (7.12.0): - - GoogleUtilities/Logger - - GoogleUtilities/UserDefaults (7.12.0): - - GoogleUtilities/Logger - - GTMAppAuth (2.0.0): - - AppAuth/Core (~> 1.6) - - GTMSessionFetcher/Core (< 4.0, >= 1.5) - - GTMSessionFetcher/Core (3.2.0) - - hermes-engine (0.73.2): - - hermes-engine/Pre-built (= 0.73.2) - - hermes-engine/Pre-built (0.73.2) - - libaom (3.0.0): - - libvmaf (>= 2.2.0) - - libavif (0.11.1): - - libavif/libaom (= 0.11.1) - - libavif/core (0.11.1) - - libavif/libaom (0.11.1): - - libaom (>= 2.0.0) - - libavif/core - - libevent (2.1.12) - - libvmaf (2.3.1) - - libwebp (1.3.2): - - libwebp/demux (= 1.3.2) - - libwebp/mux (= 1.3.2) - - libwebp/sharpyuv (= 1.3.2) - - libwebp/webp (= 1.3.2) - - libwebp/demux (1.3.2): - - libwebp/webp - - libwebp/mux (1.3.2): - - libwebp/demux - - libwebp/sharpyuv (1.3.2) - - libwebp/webp (1.3.2): - - libwebp/sharpyuv - - lottie-ios (4.3.4) - - lottie-react-native (6.4.1): - - lottie-ios (~> 4.3.3) - - React-Core - - MapboxCommon (23.6.0) - - MapboxCoreMaps (10.14.0): - - MapboxCommon (~> 23.6) - - MapboxMaps (10.14.0): - - MapboxCommon (= 23.6.0) - - MapboxCoreMaps (= 10.14.0) - - MapboxMobileEvents (= 1.0.10) - - Turf (~> 2.0) - - MapboxMobileEvents (1.0.10) - - nanopb (2.30908.0): - - nanopb/decode (= 2.30908.0) - - nanopb/encode (= 2.30908.0) - - nanopb/decode (2.30908.0) - - nanopb/encode (2.30908.0) - - Onfido (28.3.1) - - onfido-react-native-sdk (8.3.0): - - Onfido (~> 28.3.0) - - React - - OpenSSL-Universal (1.1.1100) - - Plaid (4.7.0) - - PromisesObjC (2.3.1) - - RCT-Folly (2022.05.16.00): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - RCT-Folly/Default (= 2022.05.16.00) - - RCT-Folly/Default (2022.05.16.00): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - RCT-Folly/Fabric (2022.05.16.00): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - RCT-Folly/Futures (2022.05.16.00): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - libevent - - RCTRequired (0.73.2) - - RCTTypeSafety (0.73.2): - - FBLazyVector (= 0.73.2) - - RCTRequired (= 0.73.2) - - React-Core (= 0.73.2) - - React (0.73.2): - - React-Core (= 0.73.2) - - React-Core/DevSupport (= 0.73.2) - - React-Core/RCTWebSocket (= 0.73.2) - - React-RCTActionSheet (= 0.73.2) - - React-RCTAnimation (= 0.73.2) - - React-RCTBlob (= 0.73.2) - - React-RCTImage (= 0.73.2) - - React-RCTLinking (= 0.73.2) - - React-RCTNetwork (= 0.73.2) - - React-RCTSettings (= 0.73.2) - - React-RCTText (= 0.73.2) - - React-RCTVibration (= 0.73.2) - - React-callinvoker (0.73.2) - - React-Codegen (0.73.2): - - DoubleConversion - - FBReactNativeSpec - - glog - - hermes-engine - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React-Core - - React-jsi - - React-jsiexecutor - - React-NativeModulesApple - - React-rncore - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - React-Core (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.2) - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/CoreModulesHeaders (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/Default (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/DevSupport (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.2) - - React-Core/RCTWebSocket (= 0.73.2) - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector (= 0.73.2) - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/RCTActionSheetHeaders (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/RCTAnimationHeaders (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/RCTBlobHeaders (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/RCTImageHeaders (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/RCTLinkingHeaders (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/RCTNetworkHeaders (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/RCTSettingsHeaders (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/RCTTextHeaders (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/RCTVibrationHeaders (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-Core/RCTWebSocket (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.2) - - React-cxxreact - - React-hermes - - React-jsi - - React-jsiexecutor - - React-perflogger - - React-runtimescheduler - - React-utils - - SocketRocket (= 0.6.1) - - Yoga - - React-CoreModules (0.73.2): - - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.2) - - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.2) - - React-jsi (= 0.73.2) - - React-NativeModulesApple - - React-RCTBlob - - React-RCTImage (= 0.73.2) - - ReactCommon - - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.2): - - boost (= 1.83.0) - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.2) - - React-debug (= 0.73.2) - - React-jsi (= 0.73.2) - - React-jsinspector (= 0.73.2) - - React-logger (= 0.73.2) - - React-perflogger (= 0.73.2) - - React-runtimeexecutor (= 0.73.2) - - React-debug (0.73.2) - - React-Fabric (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-Fabric/animations (= 0.73.2) - - React-Fabric/attributedstring (= 0.73.2) - - React-Fabric/componentregistry (= 0.73.2) - - React-Fabric/componentregistrynative (= 0.73.2) - - React-Fabric/components (= 0.73.2) - - React-Fabric/core (= 0.73.2) - - React-Fabric/imagemanager (= 0.73.2) - - React-Fabric/leakchecker (= 0.73.2) - - React-Fabric/mounting (= 0.73.2) - - React-Fabric/scheduler (= 0.73.2) - - React-Fabric/telemetry (= 0.73.2) - - React-Fabric/templateprocessor (= 0.73.2) - - React-Fabric/textlayoutmanager (= 0.73.2) - - React-Fabric/uimanager (= 0.73.2) - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-Fabric/components/inputaccessory (= 0.73.2) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.2) - - React-Fabric/components/modal (= 0.73.2) - - React-Fabric/components/rncore (= 0.73.2) - - React-Fabric/components/root (= 0.73.2) - - React-Fabric/components/safeareaview (= 0.73.2) - - React-Fabric/components/scrollview (= 0.73.2) - - React-Fabric/components/text (= 0.73.2) - - React-Fabric/components/textinput (= 0.73.2) - - React-Fabric/components/unimplementedview (= 0.73.2) - - React-Fabric/components/view (= 0.73.2) - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - Yoga - - React-Fabric/core (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-Fabric/uimanager - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - React-FabricImage (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.2) - - RCTTypeSafety (= 0.73.2) - - React-Fabric - - React-graphics - - React-ImageManager - - React-jsi - - React-jsiexecutor (= 0.73.2) - - React-logger - - React-rendererdebug - - React-utils - - ReactCommon - - Yoga - - React-graphics (0.73.2): - - glog - - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.2) - - React-utils - - React-hermes (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - RCT-Folly/Futures (= 2022.05.16.00) - - React-cxxreact (= 0.73.2) - - React-jsi - - React-jsiexecutor (= 0.73.2) - - React-jsinspector (= 0.73.2) - - React-perflogger (= 0.73.2) - - React-ImageManager (0.73.2): - - glog - - RCT-Folly/Fabric - - React-Core/Default - - React-debug - - React-Fabric - - React-graphics - - React-rendererdebug - - React-utils - - React-jserrorhandler (0.73.2): - - RCT-Folly/Fabric (= 2022.05.16.00) - - React-debug - - React-jsi - - React-Mapbuffer - - React-jsi (0.73.2): - - boost (= 1.83.0) - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.2) - - React-jsi (= 0.73.2) - - React-perflogger (= 0.73.2) - - React-jsinspector (0.73.2) - - React-logger (0.73.2): - - glog - - React-Mapbuffer (0.73.2): - - glog - - React-debug - - react-native-airship (15.3.1): - - AirshipFrameworkProxy (= 2.1.1) - - React-Core - - react-native-blob-util (0.19.4): - - React-Core - - react-native-cameraroll (5.4.0): - - React-Core - - react-native-config (1.4.6): - - react-native-config/App (= 1.4.6) - - react-native-config/App (1.4.6): - - React-Core - - react-native-document-picker (9.1.1): - - React-Core - - react-native-geolocation (3.0.6): - - React-Core - - react-native-image-manipulator (1.0.5): - - React - - react-native-image-picker (7.0.3): - - React-Core - - react-native-key-command (1.0.6): - - React-Core - - react-native-launch-arguments (4.0.2): - - React - - react-native-netinfo (11.2.1): - - React-Core - - react-native-pager-view (6.2.2): - - React-Core - - react-native-pdf (6.7.3): - - React-Core - - react-native-performance (5.1.0): - - React-Core - - react-native-plaid-link-sdk (10.8.0): - - Plaid (~> 4.7.0) - - React-Core - - react-native-quick-sqlite (8.0.0-beta.2): - - React - - React-callinvoker - - React-Core - - react-native-render-html (6.3.1): - - React-Core - - react-native-safe-area-context (4.8.2): - - React-Core - - react-native-view-shot (3.8.0): - - React-Core - - react-native-webview (13.6.3): - - React-Core - - React-nativeconfig (0.73.2) - - React-NativeModulesApple (0.73.2): - - glog - - hermes-engine - - React-callinvoker - - React-Core - - React-cxxreact - - React-jsi - - React-runtimeexecutor - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - React-perflogger (0.73.2) - - React-RCTActionSheet (0.73.2): - - React-Core/RCTActionSheetHeaders (= 0.73.2) - - React-RCTAnimation (0.73.2): - - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety - - React-Codegen - - React-Core/RCTAnimationHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-RCTAppDelegate (0.73.2): - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React-Core - - React-CoreModules - - React-hermes - - React-nativeconfig - - React-NativeModulesApple - - React-RCTFabric - - React-RCTImage - - React-RCTNetwork - - React-runtimescheduler - - ReactCommon - - React-RCTBlob (0.73.2): - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Codegen - - React-Core/RCTBlobHeaders - - React-Core/RCTWebSocket - - React-jsi - - React-NativeModulesApple - - React-RCTNetwork - - ReactCommon - - React-RCTFabric (0.73.2): - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core - - React-debug - - React-Fabric - - React-FabricImage - - React-graphics - - React-ImageManager - - React-jsi - - React-nativeconfig - - React-RCTImage - - React-RCTText - - React-rendererdebug - - React-runtimescheduler - - React-utils - - Yoga - - React-RCTImage (0.73.2): - - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety - - React-Codegen - - React-Core/RCTImageHeaders - - React-jsi - - React-NativeModulesApple - - React-RCTNetwork - - ReactCommon - - React-RCTLinking (0.73.2): - - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.2) - - React-jsi (= 0.73.2) - - React-NativeModulesApple - - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.2) - - React-RCTNetwork (0.73.2): - - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety - - React-Codegen - - React-Core/RCTNetworkHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-RCTSettings (0.73.2): - - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety - - React-Codegen - - React-Core/RCTSettingsHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-RCTText (0.73.2): - - React-Core/RCTTextHeaders (= 0.73.2) - - Yoga - - React-RCTVibration (0.73.2): - - RCT-Folly (= 2022.05.16.00) - - React-Codegen - - React-Core/RCTVibrationHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-rendererdebug (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - RCT-Folly (= 2022.05.16.00) - - React-debug - - React-rncore (0.73.2) - - React-runtimeexecutor (0.73.2): - - React-jsi (= 0.73.2) - - React-runtimescheduler (0.73.2): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker - - React-cxxreact - - React-debug - - React-jsi - - React-rendererdebug - - React-runtimeexecutor - - React-utils - - React-utils (0.73.2): - - glog - - RCT-Folly (= 2022.05.16.00) - - React-debug - - ReactCommon (0.73.2): - - React-logger (= 0.73.2) - - ReactCommon/turbomodule (= 0.73.2) - - ReactCommon/turbomodule (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.2) - - React-cxxreact (= 0.73.2) - - React-jsi (= 0.73.2) - - React-logger (= 0.73.2) - - React-perflogger (= 0.73.2) - - ReactCommon/turbomodule/bridging (= 0.73.2) - - ReactCommon/turbomodule/core (= 0.73.2) - - ReactCommon/turbomodule/bridging (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.2) - - React-cxxreact (= 0.73.2) - - React-jsi (= 0.73.2) - - React-logger (= 0.73.2) - - React-perflogger (= 0.73.2) - - ReactCommon/turbomodule/core (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.2) - - React-cxxreact (= 0.73.2) - - React-jsi (= 0.73.2) - - React-logger (= 0.73.2) - - React-perflogger (= 0.73.2) - - RNAppleAuthentication (2.2.2): - - React-Core - - RNCAsyncStorage (1.21.0): - - React-Core - - RNCClipboard (1.13.2): - - React-Core - - RNCPicker (2.5.1): - - React-Core - - RNDeviceInfo (10.3.0): - - React-Core - - RNDevMenu (4.1.1): - - React-Core - - React-Core/DevSupport - - React-RCTNetwork - - RNFBAnalytics (12.9.3): - - Firebase/Analytics (= 8.8.0) - - React-Core - - RNFBApp - - RNFBApp (12.9.3): - - Firebase/CoreOnly (= 8.8.0) - - React-Core - - RNFBCrashlytics (12.9.3): - - Firebase/Crashlytics (= 8.8.0) - - React-Core - - RNFBApp - - RNFBPerf (12.9.3): - - Firebase/Performance (= 8.8.0) - - React-Core - - RNFBApp - - RNFlashList (1.6.3): - - React-Core - - RNFS (2.20.0): - - React-Core - - RNGestureHandler (2.14.1): - - glog - - RCT-Folly (= 2022.05.16.00) - - React-Core - - RNGoogleSignin (10.0.1): - - GoogleSignIn (~> 7.0) - - React-Core - - RNLiveMarkdown (0.1.5): - - glog - - RCT-Folly (= 2022.05.16.00) - - React-Core - - RNLocalize (2.2.6): - - React-Core - - rnmapbox-maps (10.0.11): - - MapboxMaps (~> 10.14.0) - - React - - React-Core - - rnmapbox-maps/DynamicLibrary (= 10.0.11) - - Turf - - rnmapbox-maps/DynamicLibrary (10.0.11): - - MapboxMaps (~> 10.14.0) - - React - - React-Core - - Turf - - RNPermissions (3.9.3): - - React-Core - - RNReactNativeHapticFeedback (2.2.0): - - React-Core - - RNReanimated (3.6.1): - - glog - - RCT-Folly (= 2022.05.16.00) - - React-Core - - ReactCommon/turbomodule/core - - RNScreens (3.29.0): - - glog - - RCT-Folly (= 2022.05.16.00) - - React-Core - - RNSound (0.11.2): - - React-Core - - RNSound/Core (= 0.11.2) - - RNSound/Core (0.11.2): - - React-Core - - RNSVG (14.1.0): - - React-Core - - SDWebImage (5.17.0): - - SDWebImage/Core (= 5.17.0) - - SDWebImage/Core (5.17.0) - - SDWebImageAVIFCoder (0.10.1): - - libavif (>= 0.11.0) - - SDWebImage (~> 5.10) - - SDWebImageSVGCoder (1.7.0): - - SDWebImage/Core (~> 5.6) - - SDWebImageWebPCoder (0.13.0): - - libwebp (~> 1.0) - - SDWebImage/Core (~> 5.17) - - SocketRocket (0.6.1) - - Turf (2.7.0) - - VisionCamera (2.16.8): - - React - - React-callinvoker - - React-Core - - Yoga (1.14.0) - -DEPENDENCIES: - - AirshipServiceExtension - - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - - BVLinearGradient (from `../node_modules/react-native-linear-gradient`) - - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - - Expo (from `../node_modules/expo`) - - ExpoImage (from `../node_modules/expo-image/ios`) - - ExpoModulesCore (from `../node_modules/expo-modules-core`) - - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - - Flipper (= 0.201.0) - - Flipper-Boost-iOSX (= 1.76.0.1.11) - - Flipper-DoubleConversion (= 3.2.0.1) - - Flipper-Fmt (= 7.1.7) - - Flipper-Folly (= 2.6.10) - - Flipper-Glog (= 0.5.0.5) - - Flipper-PeerTalk (= 0.0.4) - - FlipperKit (= 0.201.0) - - FlipperKit/Core (= 0.201.0) - - FlipperKit/CppBridge (= 0.201.0) - - FlipperKit/FBCxxFollyDynamicConvert (= 0.201.0) - - FlipperKit/FBDefines (= 0.201.0) - - FlipperKit/FKPortForwarding (= 0.201.0) - - FlipperKit/FlipperKitHighlightOverlay (= 0.201.0) - - FlipperKit/FlipperKitLayoutPlugin (= 0.201.0) - - FlipperKit/FlipperKitLayoutTextSearchable (= 0.201.0) - - FlipperKit/FlipperKitNetworkPlugin (= 0.201.0) - - FlipperKit/FlipperKitReactPlugin (= 0.201.0) - - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.201.0) - - FlipperKit/SKIOSNetworkPlugin (= 0.201.0) - - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - - libevent (~> 2.1.12) - - lottie-react-native (from `../node_modules/lottie-react-native`) - - "onfido-react-native-sdk (from `../node_modules/@onfido/react-native-sdk`)" - - OpenSSL-Universal (= 1.1.1100) - - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) - - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - - React (from `../node_modules/react-native/`) - - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - - React-Codegen (from `build/generated/ios`) - - React-Core (from `../node_modules/react-native/`) - - React-Core/DevSupport (from `../node_modules/react-native/`) - - React-Core/RCTWebSocket (from `../node_modules/react-native/`) - - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) - - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) - - React-Fabric (from `../node_modules/react-native/ReactCommon`) - - React-FabricImage (from `../node_modules/react-native/ReactCommon`) - - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) - - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) - - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) - - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) - - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) - - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) - - "react-native-airship (from `../node_modules/@ua/react-native-airship`)" - - react-native-blob-util (from `../node_modules/react-native-blob-util`) - - "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)" - - react-native-config (from `../node_modules/react-native-config`) - - react-native-document-picker (from `../node_modules/react-native-document-picker`) - - "react-native-geolocation (from `../node_modules/@react-native-community/geolocation`)" - - "react-native-image-manipulator (from `../node_modules/@oguzhnatly/react-native-image-manipulator`)" - - react-native-image-picker (from `../node_modules/react-native-image-picker`) - - react-native-key-command (from `../node_modules/react-native-key-command`) - - react-native-launch-arguments (from `../node_modules/react-native-launch-arguments`) - - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" - - react-native-pager-view (from `../node_modules/react-native-pager-view`) - - react-native-pdf (from `../node_modules/react-native-pdf`) - - react-native-performance (from `../node_modules/react-native-performance`) - - react-native-plaid-link-sdk (from `../node_modules/react-native-plaid-link-sdk`) - - react-native-quick-sqlite (from `../node_modules/react-native-quick-sqlite`) - - react-native-render-html (from `../node_modules/react-native-render-html`) - - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) - - react-native-view-shot (from `../node_modules/react-native-view-shot`) - - react-native-webview (from `../node_modules/react-native-webview`) - - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) - - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) - - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) - - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) - - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) - - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) - - React-RCTFabric (from `../node_modules/react-native/React`) - - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) - - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) - - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) - - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - - React-RCTText (from `../node_modules/react-native/Libraries/Text`) - - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) - - React-rncore (from `../node_modules/react-native/ReactCommon`) - - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) - - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - - "RNAppleAuthentication (from `../node_modules/@invertase/react-native-apple-authentication`)" - - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" - - "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)" - - "RNCPicker (from `../node_modules/@react-native-picker/picker`)" - - RNDeviceInfo (from `../node_modules/react-native-device-info`) - - RNDevMenu (from `../node_modules/react-native-dev-menu`) - - "RNFBAnalytics (from `../node_modules/@react-native-firebase/analytics`)" - - "RNFBApp (from `../node_modules/@react-native-firebase/app`)" - - "RNFBCrashlytics (from `../node_modules/@react-native-firebase/crashlytics`)" - - "RNFBPerf (from `../node_modules/@react-native-firebase/perf`)" - - "RNFlashList (from `../node_modules/@shopify/flash-list`)" - - RNFS (from `../node_modules/react-native-fs`) - - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - - "RNGoogleSignin (from `../node_modules/@react-native-google-signin/google-signin`)" - - "RNLiveMarkdown (from `../node_modules/@expensify/react-native-live-markdown`)" - - RNLocalize (from `../node_modules/react-native-localize`) - - "rnmapbox-maps (from `../node_modules/@rnmapbox/maps`)" - - RNPermissions (from `../node_modules/react-native-permissions`) - - RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`) - - RNReanimated (from `../node_modules/react-native-reanimated`) - - RNScreens (from `../node_modules/react-native-screens`) - - RNSound (from `../node_modules/react-native-sound`) - - RNSVG (from `../node_modules/react-native-svg`) - - VisionCamera (from `../node_modules/react-native-vision-camera`) - - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) - -SPEC REPOS: - trunk: - - Airship - - AirshipFrameworkProxy - - AirshipServiceExtension - - AppAuth - - CocoaAsyncSocket - - Firebase - - FirebaseABTesting - - FirebaseAnalytics - - FirebaseCore - - FirebaseCoreDiagnostics - - FirebaseCrashlytics - - FirebaseInstallations - - FirebasePerformance - - FirebaseRemoteConfig - - Flipper - - Flipper-Boost-iOSX - - Flipper-DoubleConversion - - Flipper-Fmt - - Flipper-Folly - - Flipper-Glog - - Flipper-PeerTalk - - FlipperKit - - fmt - - GoogleAppMeasurement - - GoogleDataTransport - - GoogleSignIn - - GoogleUtilities - - GTMAppAuth - - GTMSessionFetcher - - libaom - - libavif - - libevent - - libvmaf - - libwebp - - lottie-ios - - MapboxCommon - - MapboxCoreMaps - - MapboxMaps - - MapboxMobileEvents - - nanopb - - Onfido - - OpenSSL-Universal - - Plaid - - PromisesObjC - - SDWebImage - - SDWebImageAVIFCoder - - SDWebImageSVGCoder - - SDWebImageWebPCoder - - SocketRocket - - Turf - -EXTERNAL SOURCES: - boost: - :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" - BVLinearGradient: - :path: "../node_modules/react-native-linear-gradient" - DoubleConversion: - :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" - Expo: - :path: "../node_modules/expo" - ExpoImage: - :path: "../node_modules/expo-image/ios" - ExpoModulesCore: - :path: "../node_modules/expo-modules-core" - FBLazyVector: - :path: "../node_modules/react-native/Libraries/FBLazyVector" - FBReactNativeSpec: - :path: "../node_modules/react-native/React/FBReactNativeSpec" - glog: - :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" - hermes-engine: - :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2023-11-17-RNv0.73.0-21043a3fc062be445e56a2c10ecd8be028dd9cc5 - lottie-react-native: - :path: "../node_modules/lottie-react-native" - onfido-react-native-sdk: - :path: "../node_modules/@onfido/react-native-sdk" - RCT-Folly: - :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" - RCTRequired: - :path: "../node_modules/react-native/Libraries/RCTRequired" - RCTTypeSafety: - :path: "../node_modules/react-native/Libraries/TypeSafety" - React: - :path: "../node_modules/react-native/" - React-callinvoker: - :path: "../node_modules/react-native/ReactCommon/callinvoker" - React-Codegen: - :path: build/generated/ios - React-Core: - :path: "../node_modules/react-native/" - React-CoreModules: - :path: "../node_modules/react-native/React/CoreModules" - React-cxxreact: - :path: "../node_modules/react-native/ReactCommon/cxxreact" - React-debug: - :path: "../node_modules/react-native/ReactCommon/react/debug" - React-Fabric: - :path: "../node_modules/react-native/ReactCommon" - React-FabricImage: - :path: "../node_modules/react-native/ReactCommon" - React-graphics: - :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" - React-hermes: - :path: "../node_modules/react-native/ReactCommon/hermes" - React-ImageManager: - :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" - React-jserrorhandler: - :path: "../node_modules/react-native/ReactCommon/jserrorhandler" - React-jsi: - :path: "../node_modules/react-native/ReactCommon/jsi" - React-jsiexecutor: - :path: "../node_modules/react-native/ReactCommon/jsiexecutor" - React-jsinspector: - :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" - React-logger: - :path: "../node_modules/react-native/ReactCommon/logger" - React-Mapbuffer: - :path: "../node_modules/react-native/ReactCommon" - react-native-airship: - :path: "../node_modules/@ua/react-native-airship" - react-native-blob-util: - :path: "../node_modules/react-native-blob-util" - react-native-cameraroll: - :path: "../node_modules/@react-native-camera-roll/camera-roll" - react-native-config: - :path: "../node_modules/react-native-config" - react-native-document-picker: - :path: "../node_modules/react-native-document-picker" - react-native-geolocation: - :path: "../node_modules/@react-native-community/geolocation" - react-native-image-manipulator: - :path: "../node_modules/@oguzhnatly/react-native-image-manipulator" - react-native-image-picker: - :path: "../node_modules/react-native-image-picker" - react-native-key-command: - :path: "../node_modules/react-native-key-command" - react-native-launch-arguments: - :path: "../node_modules/react-native-launch-arguments" - react-native-netinfo: - :path: "../node_modules/@react-native-community/netinfo" - react-native-pager-view: - :path: "../node_modules/react-native-pager-view" - react-native-pdf: - :path: "../node_modules/react-native-pdf" - react-native-performance: - :path: "../node_modules/react-native-performance" - react-native-plaid-link-sdk: - :path: "../node_modules/react-native-plaid-link-sdk" - react-native-quick-sqlite: - :path: "../node_modules/react-native-quick-sqlite" - react-native-render-html: - :path: "../node_modules/react-native-render-html" - react-native-safe-area-context: - :path: "../node_modules/react-native-safe-area-context" - react-native-view-shot: - :path: "../node_modules/react-native-view-shot" - react-native-webview: - :path: "../node_modules/react-native-webview" - React-nativeconfig: - :path: "../node_modules/react-native/ReactCommon" - React-NativeModulesApple: - :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" - React-perflogger: - :path: "../node_modules/react-native/ReactCommon/reactperflogger" - React-RCTActionSheet: - :path: "../node_modules/react-native/Libraries/ActionSheetIOS" - React-RCTAnimation: - :path: "../node_modules/react-native/Libraries/NativeAnimation" - React-RCTAppDelegate: - :path: "../node_modules/react-native/Libraries/AppDelegate" - React-RCTBlob: - :path: "../node_modules/react-native/Libraries/Blob" - React-RCTFabric: - :path: "../node_modules/react-native/React" - React-RCTImage: - :path: "../node_modules/react-native/Libraries/Image" - React-RCTLinking: - :path: "../node_modules/react-native/Libraries/LinkingIOS" - React-RCTNetwork: - :path: "../node_modules/react-native/Libraries/Network" - React-RCTSettings: - :path: "../node_modules/react-native/Libraries/Settings" - React-RCTText: - :path: "../node_modules/react-native/Libraries/Text" - React-RCTVibration: - :path: "../node_modules/react-native/Libraries/Vibration" - React-rendererdebug: - :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" - React-rncore: - :path: "../node_modules/react-native/ReactCommon" - React-runtimeexecutor: - :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" - React-runtimescheduler: - :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" - React-utils: - :path: "../node_modules/react-native/ReactCommon/react/utils" - ReactCommon: - :path: "../node_modules/react-native/ReactCommon" - RNAppleAuthentication: - :path: "../node_modules/@invertase/react-native-apple-authentication" - RNCAsyncStorage: - :path: "../node_modules/@react-native-async-storage/async-storage" - RNCClipboard: - :path: "../node_modules/@react-native-clipboard/clipboard" - RNCPicker: - :path: "../node_modules/@react-native-picker/picker" - RNDeviceInfo: - :path: "../node_modules/react-native-device-info" - RNDevMenu: - :path: "../node_modules/react-native-dev-menu" - RNFBAnalytics: - :path: "../node_modules/@react-native-firebase/analytics" - RNFBApp: - :path: "../node_modules/@react-native-firebase/app" - RNFBCrashlytics: - :path: "../node_modules/@react-native-firebase/crashlytics" - RNFBPerf: - :path: "../node_modules/@react-native-firebase/perf" - RNFlashList: - :path: "../node_modules/@shopify/flash-list" - RNFS: - :path: "../node_modules/react-native-fs" - RNGestureHandler: - :path: "../node_modules/react-native-gesture-handler" - RNGoogleSignin: - :path: "../node_modules/@react-native-google-signin/google-signin" - RNLiveMarkdown: - :path: "../node_modules/@expensify/react-native-live-markdown" - RNLocalize: - :path: "../node_modules/react-native-localize" - rnmapbox-maps: - :path: "../node_modules/@rnmapbox/maps" - RNPermissions: - :path: "../node_modules/react-native-permissions" - RNReactNativeHapticFeedback: - :path: "../node_modules/react-native-haptic-feedback" - RNReanimated: - :path: "../node_modules/react-native-reanimated" - RNScreens: - :path: "../node_modules/react-native-screens" - RNSound: - :path: "../node_modules/react-native-sound" - RNSVG: - :path: "../node_modules/react-native-svg" - VisionCamera: - :path: "../node_modules/react-native-vision-camera" - Yoga: - :path: "../node_modules/react-native/ReactCommon/yoga" - -SPEC CHECKSUMS: - Airship: 2f4510b497a8200780752a5e0304a9072bfffb6d - AirshipFrameworkProxy: ea1b6c665c798637b93c465b5e505be3011f1d9d - AirshipServiceExtension: 89c6e25a69f3458d9dbd581c700cffb196b61930 - AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570 - boost: d3f49c53809116a5d38da093a8aa78bf551aed09 - BVLinearGradient: 421743791a59d259aec53f4c58793aad031da2ca - CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 - DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 - Expo: 1e3bcf9dd99de57a636127057f6b488f0609681a - ExpoImage: 1cdaa65a6a70bb01067e21ad1347ff2d973885f5 - ExpoModulesCore: 96d1751929ad10622773bb729ab28a8423f0dd0c - FBLazyVector: fbc4957d9aa695250b55d879c1d86f79d7e69ab4 - FBReactNativeSpec: 86de768f89901ef6ed3207cd686362189d64ac88 - Firebase: 629510f1a9ddb235f3a7c5c8ceb23ba887f0f814 - FirebaseABTesting: 10cbce8db9985ae2e3847ea44e9947dd18f94e10 - FirebaseAnalytics: 5506ea8b867d8423485a84b4cd612d279f7b0b8a - FirebaseCore: 98b29e3828f0a53651c363937a7f7d92a19f1ba2 - FirebaseCoreDiagnostics: 92e07a649aeb66352b319d43bdd2ee3942af84cb - FirebaseCrashlytics: 3660c045c8e45cc4276110562a0ef44cf43c8157 - FirebaseInstallations: 40bd9054049b2eae9a2c38ef1c3dd213df3605cd - FirebasePerformance: 0c01a7a496657d7cea86d40c0b1725259d164c6c - FirebaseRemoteConfig: 2d6e2cfdb49af79535c8af8a80a4a5009038ec2b - Flipper: c7a0093234c4bdd456e363f2f19b2e4b27652d44 - Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c - Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 - Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b - Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3 - Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446 - Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 - FlipperKit: 37525a5d056ef9b93d1578e04bc3ea1de940094f - fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 - glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - GoogleAppMeasurement: 5ba1164e3c844ba84272555e916d0a6d3d977e91 - GoogleDataTransport: 57c22343ab29bc686febbf7cbb13bad167c2d8fe - GoogleSignIn: b232380cf495a429b8095d3178a8d5855b42e842 - GoogleUtilities: 0759d1a57ebb953965c2dfe0ba4c82e95ccc2e34 - GTMAppAuth: 99fb010047ba3973b7026e45393f51f27ab965ae - GTMSessionFetcher: 41b9ef0b4c08a6db4b7eb51a21ae5183ec99a2c8 - hermes-engine: b361c9ef5ef3cda53f66e195599b47e1f84ffa35 - libaom: 144606b1da4b5915a1054383c3a4459ccdb3c661 - libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7 - libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 - libvmaf: 27f523f1e63c694d14d534cd0fddd2fab0ae8711 - libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 - lottie-ios: 3d98679b41fa6fd6aff2352b3953dbd3df8a397e - lottie-react-native: a2ae9c27c273b060b2affff2957bc0ff7fdca353 - MapboxCommon: 4a0251dd470ee37e7fadda8e285c01921a5e1eb0 - MapboxCoreMaps: eb07203bbb0b1509395db5ab89cd3ad6c2e3c04c - MapboxMaps: af50ec61a7eb3b032c3f7962c6bd671d93d2a209 - MapboxMobileEvents: de50b3a4de180dd129c326e09cd12c8adaaa46d6 - nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96 - Onfido: 564f60c39819635ec5b549285a1eec278cc9ba67 - onfido-react-native-sdk: b346a620af5669f9fecb6dc3052314a35a94ad9f - OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c - Plaid: 431ef9be5314a1345efb451bc5e6b067bfb3b4c6 - PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 - RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: 9b1e7e262745fb671e33c51c1078d093bd30e322 - RCTTypeSafety: a759e3b086eccf3e2cbf2493d22f28e082f958e6 - React: 805f5dd55bbdb92c36b4914c64aaae4c97d358dc - React-callinvoker: 6a697867607c990c2c2c085296ee32cfb5e47c01 - React-Codegen: c4447ffa339f4e7a22e0c9c800eec9084f31899c - React-Core: 49f66fecc7695464e9b7bc7dc7cd9473d2c60584 - React-CoreModules: 710e7c557a1a8180bd1645f5b4bf79f4bd3f5417 - React-cxxreact: 345857b5e4be000c0527df78be3b41a0677a20ce - React-debug: f1637bce73342b2f6eee4982508fdfb088667a87 - React-Fabric: 4dfcff8f14d8e5a7a60b11b7862dad2a9d99c65b - React-FabricImage: 4a9e9510b7f28bbde6a743b18c0cb941a142e938 - React-graphics: dd5af9d8b1b45171fd6933e19fed522f373bcb10 - React-hermes: a52d183a5cf8ccb7020ce3df4275b89d01e6b53e - React-ImageManager: c5b7db131eff71443d7f3a8d686fd841d18befd3 - React-jserrorhandler: 97a6a12e2344c3c4fdd7ba1edefb005215c732f8 - React-jsi: a182068133f80918cd0eec77875abaf943a0b6be - React-jsiexecutor: dacd00ce8a18fc00a0ae6c25e3015a6437e5d2e8 - React-jsinspector: 03644c063fc3621c9a4e8bf263a8150909129618 - React-logger: 66b168e2b2bee57bd8ce9e69f739d805732a5570 - React-Mapbuffer: 9ee041e1d7be96da6d76a251f92e72b711c651d6 - react-native-airship: 6ded22e4ca54f2f80db80b7b911c2b9b696d9335 - react-native-blob-util: 30a6c9fd067aadf9177e61a998f2c7efb670598d - react-native-cameraroll: 8ffb0af7a5e5de225fd667610e2979fc1f0c2151 - react-native-config: 7cd105e71d903104e8919261480858940a6b9c0e - react-native-document-picker: 3599b238843369026201d2ef466df53f77ae0452 - react-native-geolocation: 0f7fe8a4c2de477e278b0365cce27d089a8c5903 - react-native-image-manipulator: c48f64221cfcd46e9eec53619c4c0374f3328a56 - react-native-image-picker: 2381c008bbb09e72395a2d043c147b11bd1523d9 - react-native-key-command: 5af6ee30ff4932f78da6a2109017549042932aa5 - react-native-launch-arguments: 5f41e0abf88a15e3c5309b8875d6fd5ac43df49d - react-native-netinfo: 8a7fd3f7130ef4ad2fb4276d5c9f8d3f28d2df3d - react-native-pager-view: 02a5c4962530f7efc10dd51ee9cdabeff5e6c631 - react-native-pdf: b4ca3d37a9a86d9165287741c8b2ef4d8940c00e - react-native-performance: cef2b618d47b277fb5c3280b81a3aad1e72f2886 - react-native-plaid-link-sdk: df1618a85a615d62ff34e34b76abb7a56497fbc1 - react-native-quick-sqlite: bcc7a7a250a40222f18913a97cd356bf82d0a6c4 - react-native-render-html: 96c979fe7452a0a41559685d2f83b12b93edac8c - react-native-safe-area-context: 0ee144a6170530ccc37a0fd9388e28d06f516a89 - react-native-view-shot: 6b7ed61d77d88580fed10954d45fad0eb2d47688 - react-native-webview: 88293a0f23eca8465c0433c023ec632930e644d0 - React-nativeconfig: d753fbbc8cecc8ae413d615599ac378bbf6999bb - React-NativeModulesApple: 964f4eeab1b4325e8b6a799cf4444c3fd4eb0a9c - React-perflogger: 29efe63b7ef5fbaaa50ef6eaa92482f98a24b97e - React-RCTActionSheet: 69134c62aefd362027b20da01cd5d14ffd39db3f - React-RCTAnimation: 3b5a57087c7a5e727855b803d643ac1d445488f5 - React-RCTAppDelegate: a3ce9b69c0620a1717d08e826d4dc7ad8a3a3cae - React-RCTBlob: 26ea660f2be1e6de62f2d2ad9a9c7b9bfabb786f - React-RCTFabric: bb6dbbff2f80b9489f8b2f1d2554aa040aa2e3cd - React-RCTImage: 27b27f4663df9e776d0549ed2f3536213e793f1b - React-RCTLinking: 962880ce9d0e2ea83fd182953538fc4ed757d4da - React-RCTNetwork: 73a756b44d4ad584bae13a5f1484e3ce12accac8 - React-RCTSettings: 6d7f8d807f05de3d01cfb182d14e5f400716faac - React-RCTText: 73006e95ca359595c2510c1c0114027c85a6ddd3 - React-RCTVibration: 599f427f9cbdd9c4bf38959ca020e8fef0717211 - React-rendererdebug: f2946e0a1c3b906e71555a7c4a39aa6a6c0e639b - React-rncore: 74030de0ffef7b1a3fb77941168624534cc9ae7f - React-runtimeexecutor: 2d1f64f58193f00a3ad71d3f89c2bfbfe11cf5a5 - React-runtimescheduler: df8945a656356ff10f58f65a70820478bfcf33ad - React-utils: f5bc61e7ea3325c0732ae2d755f4441940163b85 - ReactCommon: 45b5d4f784e869c44a6f5a8fad5b114ca8f78c53 - RNAppleAuthentication: 0571c08da8c327ae2afc0261b48b4a515b0286a6 - RNCAsyncStorage: 618d03a5f52fbccb3d7010076bc54712844c18ef - RNCClipboard: 60fed4b71560d7bfe40e9d35dea9762b024da86d - RNCPicker: 529d564911e93598cc399b56cc0769ce3675f8c8 - RNDeviceInfo: 4701f0bf2a06b34654745053db0ce4cb0c53ada7 - RNDevMenu: 72807568fe4188bd4c40ce32675d82434b43c45d - RNFBAnalytics: f76bfa164ac235b00505deb9fc1776634056898c - RNFBApp: 729c0666395b1953198dc4a1ec6deb8fbe1c302e - RNFBCrashlytics: 2061ca863e8e2fa1aae9b12477d7dfa8e88ca0f9 - RNFBPerf: 389914cda4000fe0d996a752532a591132cbf3f9 - RNFlashList: 4b4b6b093afc0df60ae08f9cbf6ccd4c836c667a - RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 - RNGestureHandler: 25b969a1ffc806b9f9ad2e170d4a3b049c6af85e - RNGoogleSignin: ccaa4a81582cf713eea562c5dd9dc1961a715fd0 - RNLiveMarkdown: 35eeecf7e57eb26fdc279d5d4815982a9a9f7beb - RNLocalize: d4b8af4e442d4bcca54e68fc687a2129b4d71a81 - rnmapbox-maps: 6f638ec002aa6e906a6f766d69cd45f968d98e64 - RNPermissions: 9b086c8f05b2e2faa587fdc31f4c5ab4509728aa - RNReactNativeHapticFeedback: ec56a5f81c3941206fd85625fa669ffc7b4545f9 - RNReanimated: 57f436e7aa3d277fbfed05e003230b43428157c0 - RNScreens: b582cb834dc4133307562e930e8fa914b8c04ef2 - RNSound: 6c156f925295bdc83e8e422e7d8b38d33bc71852 - RNSVG: ba3e7232f45e34b7b47e74472386cf4e1a676d0a - SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9 - SDWebImageAVIFCoder: 8348fef6d0ec69e129c66c9fe4d74fbfbf366112 - SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c - SDWebImageWebPCoder: af09429398d99d524cae2fe00f6f0f6e491ed102 - SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 - Turf: 13d1a92d969ca0311bbc26e8356cca178ce95da2 - VisionCamera: 0a6794d1974aed5d653d0d0cb900493e2583e35a - Yoga: e64aa65de36c0832d04e8c7bd614396c77a80047 - -PODFILE CHECKSUM: 0ccbb4f2406893c6e9f266dc1e7470dcd72885d2 - -COCOAPODS: 1.12.1 From 73d0864207de7814dc802903dc636feef69a7de5 Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Tue, 20 Feb 2024 12:09:54 +0100 Subject: [PATCH 19/20] fix: revert changes to Gemfile.lock --- Gemfile.lock | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 295 insertions(+) create mode 100644 Gemfile.lock diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 000000000000..beb2c1762936 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,295 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.6) + rexml + activesupport (7.0.8) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) + algoliasearch (1.27.5) + httpclient (~> 2.8, >= 2.8.3) + json (>= 1.5.1) + apktools (0.7.4) + rubyzip (~> 2.0) + artifactory (3.0.15) + atomos (0.1.3) + aws-eventstream (1.3.0) + aws-partitions (1.883.0) + aws-sdk-core (3.190.3) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.8) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.76.0) + aws-sdk-core (~> 3, >= 3.188.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.142.0) + aws-sdk-core (~> 3, >= 3.189.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.8) + aws-sigv4 (1.8.0) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) + claide (1.1.0) + cocoapods (1.13.0) + addressable (~> 2.8) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.13.0) + cocoapods-deintegrate (>= 1.0.3, < 2.0) + cocoapods-downloader (>= 1.6.0, < 2.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.6.0, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) + colored2 (~> 3.1) + escape (~> 0.0.4) + fourflusher (>= 2.3.0, < 3.0) + gh_inspector (~> 1.0) + molinillo (~> 0.8.0) + nap (~> 1.0) + ruby-macho (>= 2.3.0, < 3.0) + xcodeproj (>= 1.23.0, < 2.0) + cocoapods-core (1.13.0) + activesupport (>= 5.0, < 8) + addressable (~> 2.8) + algoliasearch (~> 1.0) + concurrent-ruby (~> 1.1) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + netrc (~> 0.11) + public_suffix (~> 4.0) + typhoeus (~> 1.0) + cocoapods-deintegrate (1.0.5) + cocoapods-downloader (1.6.3) + cocoapods-plugins (1.0.0) + nap + cocoapods-search (1.0.1) + cocoapods-trunk (1.6.0) + nap (>= 0.8, < 2.0) + netrc (~> 0.11) + cocoapods-try (1.2.0) + colored (1.2) + colored2 (3.1.2) + commander (4.6.0) + highline (~> 2.0.0) + concurrent-ruby (1.2.2) + declarative (0.0.20) + digest-crc (0.6.5) + rake (>= 12.0.0, < 14.0.0) + domain_name (0.6.20240107) + dotenv (2.8.1) + emoji_regex (3.2.3) + escape (0.0.4) + ethon (0.16.0) + ffi (>= 1.15.0) + excon (0.109.0) + faraday (1.10.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.0) + faraday (~> 1.0) + fastimage (2.3.0) + fastlane (2.219.0) + CFPropertyList (>= 2.3, < 4.0.0) + addressable (>= 2.8, < 3.0.0) + artifactory (~> 3.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) + bundler (>= 1.12.0, < 3.0.0) + colored + commander (~> 4.6) + dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (>= 0.1, < 4.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 1.0) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 1.0) + fastimage (>= 2.1.0, < 3.0.0) + gh_inspector (>= 1.1.2, < 2.0.0) + google-apis-androidpublisher_v3 (~> 0.3) + google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-env (>= 1.6.0, < 2.0.0) + google-cloud-storage (~> 1.31) + highline (~> 2.0) + http-cookie (~> 1.0.5) + json (< 3.0.0) + jwt (>= 2.1.0, < 3) + mini_magick (>= 4.9.4, < 5.0.0) + multipart-post (>= 2.0.0, < 3.0.0) + naturally (~> 2.2) + optparse (>= 0.1.1) + plist (>= 3.1.0, < 4.0.0) + rubyzip (>= 2.0.0, < 3.0.0) + security (= 0.1.3) + simctl (~> 1.6.3) + terminal-notifier (>= 2.0.0, < 3.0.0) + terminal-table (~> 3) + tty-screen (>= 0.6.3, < 1.0.0) + tty-spinner (>= 0.8.0, < 1.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) + xcpretty (~> 0.3.0) + xcpretty-travis-formatter (>= 0.0.3) + fastlane-plugin-aws_s3 (2.1.0) + apktools (~> 0.7) + aws-sdk-s3 (~> 1) + mime-types (~> 3.3) + ffi (1.16.3) + fourflusher (2.3.1) + fuzzy_match (2.0.4) + gh_inspector (1.1.3) + google-apis-androidpublisher_v3 (0.54.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-core (0.11.3) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + google-apis-iamcredentials_v1 (0.17.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-playcustomapp_v1 (0.13.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-storage_v1 (0.31.0) + google-apis-core (>= 0.11.0, < 2.a) + google-cloud-core (1.6.1) + google-cloud-env (>= 1.0, < 3.a) + google-cloud-errors (~> 1.0) + google-cloud-env (1.6.0) + faraday (>= 0.17.3, < 3.0) + google-cloud-errors (1.3.1) + google-cloud-storage (1.47.0) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.31.0) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) + googleauth (1.8.1) + faraday (>= 0.17.3, < 3.a) + jwt (>= 1.4, < 3.0) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (>= 0.16, < 2.a) + highline (2.0.3) + http-cookie (1.0.5) + domain_name (~> 0.5) + httpclient (2.8.3) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + jmespath (1.6.2) + json (2.7.1) + jwt (2.7.1) + mime-types (3.5.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2023.1003) + mini_magick (4.12.0) + mini_mime (1.1.5) + minitest (5.20.0) + molinillo (0.8.0) + multi_json (1.15.0) + multipart-post (2.3.0) + nanaimo (0.3.0) + nap (1.1.0) + naturally (2.2.1) + netrc (0.11.0) + optparse (0.4.0) + os (1.1.4) + plist (3.7.1) + public_suffix (4.0.7) + rake (13.1.0) + representable (3.2.0) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.2.6) + rouge (2.0.7) + ruby-macho (2.5.1) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + security (0.1.3) + signet (0.18.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simctl (1.6.10) + CFPropertyList + naturally + terminal-notifier (2.0.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + trailblazer-option (0.1.2) + tty-cursor (0.7.1) + tty-screen (0.8.2) + tty-spinner (0.9.3) + tty-cursor (~> 0.7) + typhoeus (1.4.1) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + uber (0.1.0) + unicode-display_width (2.5.0) + word_wrap (1.0.0) + xcodeproj (1.23.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.3.0) + rexml (~> 3.2.4) + xcpretty (0.3.0) + rouge (~> 2.0.7) + xcpretty-travis-formatter (1.0.1) + xcpretty (~> 0.2, >= 0.0.7) + +PLATFORMS + arm64-darwin-21 + ruby + universal-darwin-20 + x86_64-darwin-19 + x86_64-linux + +DEPENDENCIES + activesupport (>= 6.1.7.3, < 7.1.0) + cocoapods (~> 1.13) + fastlane (~> 2) + fastlane-plugin-aws_s3 + xcpretty (~> 0) + +RUBY VERSION + ruby 2.6.10p210 + +BUNDLED WITH + 2.4.19 From e34ae0b223b689d4408102b73bf46807372aa55e Mon Sep 17 00:00:00 2001 From: Jakub Butkiewicz Date: Thu, 22 Feb 2024 11:39:07 +0100 Subject: [PATCH 20/20] fix: resolve comments --- src/pages/iou/MoneyRequestWaypointPage.tsx | 2 +- src/pages/iou/request/step/IOURequestStepWaypoint.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/iou/MoneyRequestWaypointPage.tsx b/src/pages/iou/MoneyRequestWaypointPage.tsx index ce31e58514f5..c21aae7cf063 100644 --- a/src/pages/iou/MoneyRequestWaypointPage.tsx +++ b/src/pages/iou/MoneyRequestWaypointPage.tsx @@ -15,7 +15,7 @@ type MoneyRequestWaypointPageProps = StackScreenProps