From 1a06d5f97ab1feb75bc9c99f7d25a5d997ef55f4 Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Thu, 16 May 2024 19:40:40 -0700 Subject: [PATCH 01/18] feat: add new write command --- src/libs/API/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libs/API/types.ts b/src/libs/API/types.ts index 08bc5eddd087..84ebb38d878b 100644 --- a/src/libs/API/types.ts +++ b/src/libs/API/types.ts @@ -127,6 +127,7 @@ const WRITE_COMMANDS = { CREATE_WORKSPACE_FROM_IOU_PAYMENT: 'CreateWorkspaceFromIOUPayment', SET_WORKSPACE_CATEGORIES_ENABLED: 'SetWorkspaceCategoriesEnabled', SET_POLICY_TAGS_ENABLED: 'SetPolicyTagsEnabled', + SET_POLICY_TAGS_REQUIRED: 'SetPolicyTagsRequired', CREATE_WORKSPACE_CATEGORIES: 'CreateWorkspaceCategories', RENAME_WORKSPACE_CATEGORY: 'RenameWorkspaceCategory', CREATE_POLICY_TAG: 'CreatePolicyTag', From 34ddf7df079da94f4ebed27739ee70ee61e04ec4 Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Thu, 16 May 2024 19:41:16 -0700 Subject: [PATCH 02/18] feat: define parameters for the new API command --- src/libs/API/parameters/SetPolicyTagsRequired.ts | 11 +++++++++++ src/libs/API/parameters/index.ts | 1 + 2 files changed, 12 insertions(+) create mode 100644 src/libs/API/parameters/SetPolicyTagsRequired.ts diff --git a/src/libs/API/parameters/SetPolicyTagsRequired.ts b/src/libs/API/parameters/SetPolicyTagsRequired.ts new file mode 100644 index 000000000000..2b9e504c4749 --- /dev/null +++ b/src/libs/API/parameters/SetPolicyTagsRequired.ts @@ -0,0 +1,11 @@ +type SetPolicyTagsRequired = { + policyID: string; + /** + * When the tags are imported as multi level tags, the index of the top + * most tag list item + */ + tagListIndex?: number; + requireTagList: boolean; +}; + +export default SetPolicyTagsRequired; diff --git a/src/libs/API/parameters/index.ts b/src/libs/API/parameters/index.ts index 52f130a28dd1..d3ce2cf12666 100644 --- a/src/libs/API/parameters/index.ts +++ b/src/libs/API/parameters/index.ts @@ -180,6 +180,7 @@ export type {default as EnablePolicyConnectionsParams} from './EnablePolicyConne export type {default as EnablePolicyDistanceRatesParams} from './EnablePolicyDistanceRatesParams'; export type {default as EnablePolicyTagsParams} from './EnablePolicyTagsParams'; export type {default as SetPolicyTagsEnabled} from './SetPolicyTagsEnabled'; +export type {default as SetPolicyTagsRequired} from './SetPolicyTagsRequired'; export type {default as EnablePolicyWorkflowsParams} from './EnablePolicyWorkflowsParams'; export type {default as EnablePolicyReportFieldsParams} from './EnablePolicyReportFieldsParams'; export type {default as AcceptJoinRequestParams} from './AcceptJoinRequest'; From a05a84da9909b24547fb0a16536229e7e20c4937 Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Thu, 16 May 2024 19:43:41 -0700 Subject: [PATCH 03/18] feat: create a new action --- src/libs/actions/Policy.ts | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/libs/actions/Policy.ts b/src/libs/actions/Policy.ts index 3e09524e1dd1..aa6db53ddb8b 100644 --- a/src/libs/actions/Policy.ts +++ b/src/libs/actions/Policy.ts @@ -41,6 +41,7 @@ import type { SetPolicyDistanceRatesDefaultCategoryParams, SetPolicyDistanceRatesEnabledParams, SetPolicyDistanceRatesUnitParams, + SetPolicyTagsRequired, SetWorkspaceApprovalModeParams, SetWorkspaceAutoReportingFrequencyParams, SetWorkspaceAutoReportingMonthlyOffsetParams, @@ -3466,6 +3467,54 @@ function createPolicyTag(policyID: string, tagName: string) { API.write(WRITE_COMMANDS.CREATE_POLICY_TAG, parameters, onyxData); } +function setWorkspaceTagListRequired(policyID: string, tagListIndex: number, required: boolean) { + const policyTag = PolicyUtils.getTagLists(allPolicyTags?.[`${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`] ?? {})?.[tagListIndex] ?? {}; + + const onyxData: OnyxData = { + optimisticData: [ + { + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`, + value: { + [policyTag.name]: { + required, + }, + }, + }, + ], + successData: [ + { + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`, + value: { + [policyTag.name]: { + required, + }, + }, + }, + ], + failureData: [ + { + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`, + value: { + [policyTag.name]: { + required: policyTag.required, + }, + }, + }, + ], + }; + + const parameters: SetPolicyTagsRequired = { + policyID, + tagListIndex, + requireTagList: required, + }; + + API.write(WRITE_COMMANDS.SET_POLICY_TAGS_REQUIRED, parameters, onyxData); +} + function setWorkspaceTagEnabled(policyID: string, tagsToUpdate: Record) { const policyTag = PolicyUtils.getTagLists(allPolicyTags?.[`${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`] ?? {})?.[0] ?? {}; @@ -5275,6 +5324,7 @@ export { deleteWorkspaceCategories, deletePolicyTags, setWorkspaceTagEnabled, + setWorkspaceTagListRequired, setWorkspaceCurrencyDefault, setForeignCurrencyDefault, setPolicyCustomTaxName, From d1fb612a66b86164630aa9930cae1df10bb82064 Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Thu, 16 May 2024 19:44:03 -0700 Subject: [PATCH 04/18] feat: add new switch button --- src/pages/workspace/tags/WorkspaceViewTagsPage.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx index 09ba086e3a14..bff5e6e7cf62 100644 --- a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx @@ -14,6 +14,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import SelectionList from '@components/SelectionList'; import ListItemRightCaretWithLabel from '@components/SelectionList/ListItemRightCaretWithLabel'; import TableListItem from '@components/SelectionList/TableListItem'; +import Switch from '@components/Switch'; import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; @@ -66,6 +67,7 @@ function WorkspaceViewTagsPage({route}: WorkspaceViewTagsProps) { }, [isFocused]); const policyTagList = useMemo(() => PolicyUtils.getTagLists(policyTags).find((policyTag) => policyTag.name === currentTagListName), [currentTagListName, policyTags]); + const tagList = useMemo( () => Object.values(policyTagList?.tags ?? {}) @@ -244,6 +246,16 @@ function WorkspaceViewTagsPage({route}: WorkspaceViewTagsProps) { shouldShowRightIcon /> + + + {translate('workspace.tags.requiresTag')} + Policy.setWorkspaceTagListRequired(policyID, route.params.orderWeight ?? 0, on)} + /> + + {isLoading && ( Date: Thu, 16 May 2024 20:09:36 -0700 Subject: [PATCH 05/18] fix: update the word in UI copy --- src/languages/en.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index f8d122f3b69a..81019e91909c 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -2190,7 +2190,7 @@ export default { }, tags: { tagName: 'Tag name', - requiresTag: 'Members must tag all spend', + requiresTag: 'Members must tag all expenses', customTagName: 'Custom tag name', enableTag: 'Enable tag', enableTags: 'Enable tags', From 9fa5d55761b19044173ad97fc638f0b63d13d877 Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Thu, 16 May 2024 20:10:28 -0700 Subject: [PATCH 06/18] fix: update spanish translation --- src/languages/es.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index 536a6182f393..d52514458516 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -2226,7 +2226,7 @@ export default { }, tags: { tagName: 'Nombre de etiqueta', - requiresTag: 'Los miembros deben etiquetar todos los gastos', + requiresTag: 'Los diputados deben etiquetar todos los gastos', customTagName: 'Nombre de etiqueta personalizada', enableTag: 'Habilitar etiqueta', enableTags: 'Habilitar etiquetas', From bf1990b102e3c3b3d88a4f46a9aa11c48a69209b Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Thu, 16 May 2024 20:26:34 -0700 Subject: [PATCH 07/18] fix: make param not optional --- src/libs/API/parameters/SetPolicyTagsRequired.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/API/parameters/SetPolicyTagsRequired.ts b/src/libs/API/parameters/SetPolicyTagsRequired.ts index 2b9e504c4749..52c989c459df 100644 --- a/src/libs/API/parameters/SetPolicyTagsRequired.ts +++ b/src/libs/API/parameters/SetPolicyTagsRequired.ts @@ -4,7 +4,7 @@ type SetPolicyTagsRequired = { * When the tags are imported as multi level tags, the index of the top * most tag list item */ - tagListIndex?: number; + tagListIndex: number; requireTagList: boolean; }; From 42ef253001fe731f5a9be53dc78c044416e1c6d0 Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Thu, 16 May 2024 20:35:34 -0700 Subject: [PATCH 08/18] chore: use OptionsRow component --- src/pages/workspace/tags/WorkspaceViewTagsPage.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx index bff5e6e7cf62..9ac82704c550 100644 --- a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx @@ -28,6 +28,7 @@ import * as PolicyUtils from '@libs/PolicyUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; +import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow'; import * as Policy from '@userActions/Policy'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -246,6 +247,15 @@ function WorkspaceViewTagsPage({route}: WorkspaceViewTagsProps) { shouldShowRightIcon /> + Policy.setWorkspaceTagListRequired(policyID, route.params.orderWeight ?? 0, on)} + //TODO: add values for errors and pendingAction props + errors={undefined} + pendingAction={undefined} + /> {translate('workspace.tags.requiresTag')} From 57146b556f743d95643e901b60d70b87faa50540 Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Mon, 20 May 2024 15:40:26 -0700 Subject: [PATCH 09/18] chore: draft --- src/libs/actions/Policy.ts | 6 +++++- .../workspace/tags/WorkspaceViewTagsPage.tsx | 21 +++++++++++-------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/libs/actions/Policy.ts b/src/libs/actions/Policy.ts index aa6db53ddb8b..207d7af9a7b8 100644 --- a/src/libs/actions/Policy.ts +++ b/src/libs/actions/Policy.ts @@ -3419,7 +3419,7 @@ function createPolicyTag(policyID: string, tagName: string) { name: tagName, enabled: true, errors: null, - pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD, + pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE, }, }, }, @@ -3478,6 +3478,8 @@ function setWorkspaceTagListRequired(policyID: string, tagListIndex: number, req value: { [policyTag.name]: { required, + errors: null, + pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD, }, }, }, @@ -3489,6 +3491,8 @@ function setWorkspaceTagListRequired(policyID: string, tagListIndex: number, req value: { [policyTag.name]: { required, + errors: null, + pendingAction: null, }, }, }, diff --git a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx index 9ac82704c550..783c7795865f 100644 --- a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx @@ -22,6 +22,7 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; +import * as ErrorUtils from '@libs/ErrorUtils'; import localeCompare from '@libs/LocaleCompare'; import Navigation from '@libs/Navigation/Navigation'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -247,15 +248,17 @@ function WorkspaceViewTagsPage({route}: WorkspaceViewTagsProps) { shouldShowRightIcon /> - Policy.setWorkspaceTagListRequired(policyID, route.params.orderWeight ?? 0, on)} - //TODO: add values for errors and pendingAction props - errors={undefined} - pendingAction={undefined} - /> + + Policy.setWorkspaceTagListRequired(policyID, route.params.orderWeight ?? 0, on)} + pendingAction={currentPolicyTag.pendingFields?.required} + errors={ErrorUtils.getLatestErrorField(currentPolicyTag ?? {}, CONST.POLICY)} + disabled={tagList.length === 0} + /> + {translate('workspace.tags.requiresTag')} From 821544467df5f93a936ce7d3b4d1f504850d752a Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Mon, 20 May 2024 17:20:52 -0700 Subject: [PATCH 10/18] feat: add a new const --- src/CONST.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/CONST.ts b/src/CONST.ts index 6517ece4276d..ed896fdc58be 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -1658,6 +1658,9 @@ const CONST = { // Often referred to as "collect" workspaces TEAM: 'team', }, + TAG: { + required: 'required', + }, ROLE: { ADMIN: 'admin', AUDITOR: 'auditor', From 07ee7e8a1d16d76c1c73b1bf5f7c5a220154e3dc Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Mon, 20 May 2024 17:21:28 -0700 Subject: [PATCH 11/18] chore: remove redundant tag component & supply errors --- src/pages/workspace/tags/WorkspaceViewTagsPage.tsx | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx index 783c7795865f..c70ecd32ad7e 100644 --- a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx @@ -255,20 +255,10 @@ function WorkspaceViewTagsPage({route}: WorkspaceViewTagsProps) { isActive={Boolean(policyTagList?.required)} onToggle={(on) => Policy.setWorkspaceTagListRequired(policyID, route.params.orderWeight ?? 0, on)} pendingAction={currentPolicyTag.pendingFields?.required} - errors={ErrorUtils.getLatestErrorField(currentPolicyTag ?? {}, CONST.POLICY)} + errors={ErrorUtils.getLatestErrorField(policyTags, CONST.POLICY.TAG.required)} disabled={tagList.length === 0} /> - - - {translate('workspace.tags.requiresTag')} - Policy.setWorkspaceTagListRequired(policyID, route.params.orderWeight ?? 0, on)} - /> - - {isLoading && ( Date: Mon, 20 May 2024 17:23:22 -0700 Subject: [PATCH 12/18] fix: remove unnecessary import --- src/pages/workspace/tags/WorkspaceViewTagsPage.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx index c70ecd32ad7e..33f183cb911f 100644 --- a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx @@ -14,7 +14,6 @@ import ScreenWrapper from '@components/ScreenWrapper'; import SelectionList from '@components/SelectionList'; import ListItemRightCaretWithLabel from '@components/SelectionList/ListItemRightCaretWithLabel'; import TableListItem from '@components/SelectionList/TableListItem'; -import Switch from '@components/Switch'; import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; From a49f17521ddce067d16d5c350661414d998d1ff4 Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Mon, 20 May 2024 17:25:11 -0700 Subject: [PATCH 13/18] chore: remove redundant field value update --- src/libs/actions/Policy.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libs/actions/Policy.ts b/src/libs/actions/Policy.ts index 207d7af9a7b8..843279dda558 100644 --- a/src/libs/actions/Policy.ts +++ b/src/libs/actions/Policy.ts @@ -3490,7 +3490,6 @@ function setWorkspaceTagListRequired(policyID: string, tagListIndex: number, req key: `${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`, value: { [policyTag.name]: { - required, errors: null, pendingAction: null, }, From 8639607d97f5c08920a3ba3d7785470a948a60a6 Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Mon, 20 May 2024 17:26:21 -0700 Subject: [PATCH 14/18] doc: remove unnecessary comments --- src/libs/API/parameters/SetPolicyTagsRequired.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/libs/API/parameters/SetPolicyTagsRequired.ts b/src/libs/API/parameters/SetPolicyTagsRequired.ts index 52c989c459df..8defd4a80840 100644 --- a/src/libs/API/parameters/SetPolicyTagsRequired.ts +++ b/src/libs/API/parameters/SetPolicyTagsRequired.ts @@ -1,9 +1,5 @@ type SetPolicyTagsRequired = { policyID: string; - /** - * When the tags are imported as multi level tags, the index of the top - * most tag list item - */ tagListIndex: number; requireTagList: boolean; }; From 346f7960ad1f94dfeffd7f8fd49720e1cbada34f Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Wed, 22 May 2024 16:55:05 -0700 Subject: [PATCH 15/18] fix: type errors --- src/libs/API/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libs/API/types.ts b/src/libs/API/types.ts index 84ebb38d878b..4a14e2f6eb3e 100644 --- a/src/libs/API/types.ts +++ b/src/libs/API/types.ts @@ -345,6 +345,7 @@ type WriteCommandParameters = { [WRITE_COMMANDS.CREATE_POLICY_TAG]: Parameters.CreatePolicyTagsParams; [WRITE_COMMANDS.RENAME_POLICY_TAG]: Parameters.RenamePolicyTagsParams; [WRITE_COMMANDS.SET_POLICY_TAGS_ENABLED]: Parameters.SetPolicyTagsEnabled; + [WRITE_COMMANDS.SET_POLICY_TAGS_REQUIRED]: Parameters.SetPolicyTagsRequired; [WRITE_COMMANDS.DELETE_POLICY_TAGS]: Parameters.DeletePolicyTagsParams; [WRITE_COMMANDS.CREATE_TASK]: Parameters.CreateTaskParams; [WRITE_COMMANDS.CANCEL_TASK]: Parameters.CancelTaskParams; From 6cb48b815ca140eda5c49639fa4db64237da266b Mon Sep 17 00:00:00 2001 From: Hayata Suenaga Date: Fri, 31 May 2024 10:07:08 -0700 Subject: [PATCH 16/18] Revert "Merge branch 'main' into hayata-add-switch-to-require-tags-per-parent-level" This reverts commit 6e298561e159622a429ae782f530772db10f68c3, reversing changes made to a367437ea684acb38f63f043b477b5bff3a961cb. --- .eslintrc.js | 2 +- .../javascript/bumpVersion/bumpVersion.ts | 11 +- .../actions/javascript/bumpVersion/index.js | 5 +- .../checkDeployBlockers.ts | 2 +- .../getGraphiteString/getGraphiteString.ts | 2 +- .../getPreviousVersion/getPreviousVersion.ts | 9 +- .../javascript/getPreviousVersion/index.js | 5 +- .../reviewerChecklist/reviewerChecklist.ts | 2 +- .github/scripts/detectRedirectCycle.ts | 2 +- .github/workflows/e2ePerformanceTests.yml | 4 - .github/workflows/lint.yml | 2 +- .github/workflows/test.yml | 2 +- .github/workflows/typecheck.yml | 4 - .storybook/public/favicon.svg | 12 +- android/app/build.gradle | 15 +- android/build.gradle | 6 +- assets/images/all.svg | 2 +- assets/images/arrow-right.svg | 11 +- assets/images/avatars/fallback-avatar.svg | 11 +- .../images/avatars/group/default-avatar_1.svg | 8 +- .../avatars/group/default-avatar_10.svg | 8 +- .../avatars/group/default-avatar_11.svg | 8 +- .../avatars/group/default-avatar_12.svg | 8 +- .../avatars/group/default-avatar_13.svg | 8 +- .../avatars/group/default-avatar_14.svg | 8 +- .../avatars/group/default-avatar_15.svg | 8 +- .../avatars/group/default-avatar_16.svg | 8 +- .../avatars/group/default-avatar_17.svg | 8 +- .../avatars/group/default-avatar_18.svg | 8 +- .../images/avatars/group/default-avatar_2.svg | 8 +- .../images/avatars/group/default-avatar_3.svg | 8 +- .../images/avatars/group/default-avatar_4.svg | 8 +- .../images/avatars/group/default-avatar_5.svg | 8 +- .../images/avatars/group/default-avatar_6.svg | 8 +- .../images/avatars/group/default-avatar_7.svg | 8 +- .../images/avatars/group/default-avatar_8.svg | 8 +- .../images/avatars/group/default-avatar_9.svg | 8 +- assets/images/back-left.svg | 11 +- assets/images/coins.svg | 9 +- assets/images/comment-bubbles.svg | 1 - assets/images/connection-complete.svg | 331 +++++++++- assets/images/credit-card-hourglass.svg | 20 +- assets/images/document-plus.svg | 6 +- assets/images/document-slash.svg | 2 +- .../integrationicons/qbo-icon-square.svg | 15 +- .../integrationicons/xero-icon-square.svg | 33 +- assets/images/invoice-generic.svg | 16 +- assets/images/money-waving.svg | 82 ++- assets/images/new-expensify-adhoc.svg | 32 +- assets/images/new-expensify-dev.svg | 28 +- assets/images/new-expensify-stg.svg | 36 +- assets/images/play.svg | 7 +- assets/images/qrcode.svg | 15 +- assets/images/receipt-plus.svg | 1 - assets/images/receipt-scan.svg | 15 +- .../simple-illustration__abacus.svg | 44 +- .../simple-illustration__accounting.svg | 33 +- .../simple-illustration__alert.svg | 16 +- .../simple-illustration__binoculars.svg | 51 +- .../simple-illustration__car-ice.svg | 54 +- .../simple-illustration__car.svg | 26 +- .../simple-illustration__coins.svg | 27 +- .../simple-illustration__company-card.svg | 39 +- .../simple-illustration__lightbulb.svg | 34 +- .../simple-illustration__pencil.svg | 21 +- .../simple-illustration__piggybank.svg | 51 +- .../simple-illustration__receiptupload.svg | 23 +- .../simple-illustration__splitbill.svg | 56 +- .../simple-illustration__tag.svg | 34 +- .../simple-illustration__teachers-unite.svg | 50 +- .../simple-illustration__workflows.svg | 154 ++++- assets/images/stopwatch.svg | 2 +- assets/images/suitcase.svg | 4 +- assets/images/tag.svg | 13 +- assets/images/thread.svg | 4 +- assets/images/x-circle.svg | 13 +- babel.config.js | 11 - config/webpack/webpack.common.ts | 2 +- contributingGuides/CONTRIBUTING.md | 9 +- contributingGuides/STYLE.md | 2 +- desktop/ELECTRON_EVENTS.ts | 4 - desktop/contextBridge.ts | 13 +- desktop/createDownloadQueue.ts | 116 ---- desktop/electronDownloadManagerType.ts | 49 -- desktop/main.ts | 15 +- .../expenses/Referral-Program.md | 49 ++ .../Change-Expensify-Card-limit.md | 25 - .../Deactivate-or-cancel-an-Expensify-Card.md | 28 - .../accounting-integrations/NetSuite.md | 6 +- .../new-expensify/connections/Coming-Soon.md | 6 + .../connections/Set-up-Xero-connection.md | 102 --- .../expenses/Approve-and-pay-expenses.md | 72 --- .../Check-Expensify-Card-limit.md | 27 - .../expensify-card/Coming-Soon.md | 4 + .../Dispute-Expensify-Card-transaction.md | 73 --- ...ate-your-Expensify-Card-mailing-address.md | 29 - .../expensify-card/Use-your-Expensify-Card.md | 56 -- .../new-expensify/workspaces/Coming-Soon.md | 6 + ...equire-tags-and-categories-for-expenses.md | 4 +- .../assets/images/AdminissuedVirtualCards.png | Bin 153606 -> 157289 bytes docs/assets/images/domains.svg | 45 +- docs/assets/images/plane.svg | 35 +- docs/redirects.csv | 28 +- ios/NewExpensify.xcodeproj/project.pbxproj | 28 +- ios/NewExpensify/Info.plist | 4 +- ios/NewExpensifyTests/Info.plist | 4 +- ios/NotificationServiceExtension/Info.plist | 4 +- ios/Podfile | 2 - ios/Podfile.lock | 49 +- jest/setup.ts | 2 - jest/setupMockFullstoryLib.ts | 24 - package-lock.json | 411 ++++++------ package.json | 28 +- patches/@shopify+flash-list+1.6.3.patch | 30 +- patches/react-native-modal+13.0.1.patch | 14 +- ...react-native-web+0.19.9+001+initial.patch} | 16 +- ...ative-web+0.19.9+002+measureInWindow.patch | 13 + ...native-web+0.19.9+004+fixLastSpacer.patch} | 0 ...web+0.19.9+005+image-header-support.patch} | 12 +- ...-web+0.19.9+006+fixPointerEventDown.patch} | 0 ...tive-web+0.19.9+007+osr-improvement.patch} | 0 src/CONST.ts | 50 +- src/Expensify.tsx | 12 +- src/ONYXKEYS.ts | 8 - src/ROUTES.ts | 22 +- src/SCREENS.ts | 4 - src/components/AddressForm.tsx | 3 - src/components/AddressSearch/index.tsx | 2 +- .../BaseAnchorForAttachmentsOnly.tsx | 3 +- .../BaseAnchorForCommentsOnly.tsx | 6 +- src/components/AttachmentModal.tsx | 13 +- .../AttachmentPicker/index.native.tsx | 10 +- .../AttachmentCarouselCellRenderer.tsx | 29 + .../AttachmentCarousel/CarouselButtons.tsx | 8 +- .../Attachments/AttachmentCarousel/index.tsx | 113 ++-- .../AttachmentViewVideo/index.tsx | 6 +- .../BaseAutoCompleteSuggestions.tsx | 24 +- src/components/Avatar.tsx | 13 +- .../AvatarCropModal/AvatarCropModal.tsx | 21 +- src/components/AvatarWithDisplayName.tsx | 6 +- src/components/AvatarWithImagePicker.tsx | 21 +- src/components/AvatarWithIndicator.tsx | 10 +- src/components/Banner.tsx | 4 +- src/components/BigNumberPad.tsx | 4 +- src/components/BlockedReportFooter.tsx | 24 - src/components/Button/index.tsx | 4 + src/components/ChatDetailsQuickActionsBar.tsx | 64 ++ src/components/Composer/index.native.tsx | 7 +- src/components/Composer/index.tsx | 10 +- src/components/Composer/types.ts | 3 + src/components/ConfirmModal.tsx | 6 +- .../CurrencySelectionList/index.tsx | 1 - src/components/DatePicker/index.tsx | 6 +- src/components/EReceiptThumbnail.tsx | 16 +- src/components/EmojiPicker/EmojiPicker.tsx | 8 +- .../EmojiPickerMenu/BaseEmojiPickerMenu.tsx | 6 +- .../EmojiPickerMenu/index.native.tsx | 6 +- .../EmojiPicker/EmojiPickerMenu/index.tsx | 10 +- src/components/FullstoryNative.tsx | 3 - .../GrowlNotificationContainer/index.tsx | 6 +- .../HTMLRenderers/VideoRenderer.tsx | 2 +- src/components/HTMLEngineProvider/index.tsx | 6 +- src/components/HeaderPageLayout.tsx | 6 +- src/components/Icon/Expensicons.ts | 4 - src/components/Icon/__mocks__/Expensicons.ts | 5 +- .../Image/ImageBehaviorContextProvider.tsx | 18 - src/components/Image/index.tsx | 13 +- src/components/Image/sourcePropTypes/index.js | 13 + .../Image/sourcePropTypes/index.native.js | 12 + src/components/InitialURLContextProvider.tsx | 14 +- src/components/KYCWall/BaseKYCWall.tsx | 2 +- .../KeyboardAvoidingView/index.ios.tsx | 2 +- src/components/KeyboardAvoidingView/index.tsx | 2 +- src/components/KeyboardAvoidingView/types.ts | 5 +- .../LHNOptionsList/LHNOptionsList.tsx | 6 +- .../LHNOptionsList/OptionRowLHN.tsx | 23 +- src/components/MapView/MapView.tsx | 23 +- src/components/MapView/MapView.website.tsx | 23 +- src/components/MenuItem.tsx | 11 +- src/components/MenuItemGroup.tsx | 2 +- src/components/Modal/BaseModal.tsx | 8 +- src/components/MoneyReportHeader.tsx | 72 ++- src/components/MoneyRequestAmountInput.tsx | 21 +- .../MoneyRequestConfirmationList.tsx | 22 +- src/components/MoneyRequestHeader.tsx | 88 ++- src/components/OfflineIndicator.tsx | 8 +- src/components/OfflineWithFeedback.tsx | 8 +- src/components/Onfido/BaseOnfidoWeb.tsx | 5 +- src/components/Onfido/index.native.tsx | 7 +- src/components/PDFView/PDFPasswordForm.tsx | 6 +- src/components/PDFView/index.native.tsx | 9 +- src/components/PDFView/index.tsx | 10 +- src/components/Popover/index.tsx | 18 +- src/components/PopoverMenu.tsx | 6 +- .../GenericPressable/BaseGenericPressable.tsx | 2 - .../Pressable/GenericPressable/types.ts | 5 - .../BaseProfilingToolMenu.tsx | 2 +- src/components/PromotedActionsBar.tsx | 118 ---- .../Reactions/EmojiReactionBubble.tsx | 6 +- src/components/ReceiptImage.tsx | 10 - .../ReportActionItem/MoneyReportView.tsx | 202 +++--- .../MoneyRequestPreviewContent.tsx | 16 +- .../ReportActionItem/MoneyRequestView.tsx | 43 +- .../ReportActionItemImages.tsx | 47 +- .../ReportActionItem/ReportPreview.tsx | 28 +- src/components/ReportActionItem/TaskView.tsx | 2 +- src/components/ReportHeaderSkeletonView.tsx | 12 +- src/components/ScreenWrapper.tsx | 13 +- src/components/Search.tsx | 27 +- src/components/Section/index.tsx | 6 +- src/components/SelectionList/BaseListItem.tsx | 1 - .../SelectionList/BaseSelectionList.tsx | 80 +-- .../SelectionList/RadioListItem.tsx | 1 - .../Search/ExpenseItemHeaderNarrow.tsx | 54 -- .../SelectionList/Search/ReportListItem.tsx | 162 ----- .../Search/TransactionListItem.tsx | 69 -- .../Search/TransactionListItemRow.tsx | 435 ------------- .../SelectionList/Search/UserInfoCell.tsx | 43 -- .../SelectionList/SearchTableHeader.tsx | 5 - .../SelectionList/SearchTableHeaderColumn.tsx | 2 +- .../{Search => }/TextWithIconCell.tsx | 0 .../SelectionList/TransactionListItem.tsx | 278 ++++++++ src/components/SelectionList/types.ts | 86 +-- .../AppleSignIn/index.android.tsx | 6 +- .../SignInButtons/AppleSignIn/index.ios.tsx | 7 +- src/components/TagPicker/index.tsx | 2 - .../TextInput/BaseTextInput/index.tsx | 4 +- .../TextInputWithCurrencySymbol/types.ts | 2 +- src/components/ThumbnailImage.tsx | 14 +- src/components/TimePicker/TimePicker.tsx | 4 +- src/components/Tooltip/BaseTooltip/index.tsx | 10 +- .../BaseUserDetailsTooltip/index.tsx | 5 +- .../VideoPlayer/BaseVideoPlayer.tsx | 12 +- src/components/VideoPlayerPreview/index.tsx | 8 +- src/components/WorkspaceEmptyStateSection.tsx | 6 +- src/components/avatarPropTypes.js | 11 + src/components/categoryPropTypes.js | 9 + src/components/optionPropTypes.js | 65 ++ src/components/participantPropTypes.js | 28 + src/components/tagPropTypes.js | 21 + src/components/withCurrentReportID.tsx | 12 +- src/components/withKeyboardState.tsx | 13 +- src/components/withLocalize.tsx | 29 + src/components/withStyleUtils.tsx | 6 +- src/components/withTheme.tsx | 5 + src/components/withThemeStyles.tsx | 5 + .../withWindowDimensions/index.native.tsx | 22 +- src/components/withWindowDimensions/index.tsx | 22 +- .../useActiveWorkspaceFromNavigationState.ts | 8 +- .../config.native.ts | 5 + src/hooks/useAnimatedHighlightStyle/config.ts | 8 + src/hooks/useAnimatedHighlightStyle/index.ts | 79 +-- src/hooks/useMarkdownStyle.ts | 35 +- src/hooks/useResponsiveLayout.ts | 50 +- src/hooks/useViolations.ts | 3 +- src/languages/en.ts | 21 +- src/languages/es.ts | 17 +- src/languages/types.ts | 23 +- src/libs/API/parameters/TrackExpenseParams.ts | 1 - src/libs/EmojiUtils.ts | 12 +- .../Environment/betaChecker/index.android.ts | 2 +- src/libs/ErrorUtils.ts | 21 +- src/libs/Fullstory/index.native.ts | 52 -- src/libs/Fullstory/index.ts | 94 --- src/libs/Fullstory/types.ts | 5 - src/libs/Localize/index.ts | 13 +- .../Middleware/HandleUnusedOptimisticID.ts | 10 - src/libs/Middleware/Logging.ts | 7 +- .../BaseCentralPaneNavigator.tsx | 2 - .../Navigators/OnboardingModalNavigator.tsx | 24 +- .../Navigators/Overlay/BaseOverlay.tsx | 5 +- .../createCustomBottomTabNavigator/TopBar.tsx | 26 +- .../createCustomBottomTabNavigator/index.tsx | 2 - .../getRootNavigatorScreenOptions.ts | 3 - src/libs/Navigation/Navigation.ts | 4 +- src/libs/Navigation/NavigationRoot.tsx | 7 - .../Navigation/extrapolateStateFromParams.ts | 30 - .../Navigation/getTopmostNestedRHPRoute.ts | 25 + src/libs/Navigation/isSideModalNavigator.ts | 7 - .../Navigation/{linkTo/index.ts => linkTo.ts} | 174 +++-- .../linkTo/getActionForBottomTabNavigator.ts | 51 -- .../Navigation/linkTo/getMinimalAction.ts | 42 -- src/libs/Navigation/linkTo/types.ts | 11 - .../CENTRAL_PANE_TO_RHP_MAPPING.ts | 1 - .../TAB_TO_CENTRAL_PANE_MAPPING.ts | 1 - src/libs/Navigation/linkingConfig/config.ts | 1 - .../linkingConfig/customGetPathFromState.ts | 2 +- .../extractPolicyIDsFromState.ts | 13 - .../linkingConfig/getAdaptedStateFromPath.ts | 24 +- src/libs/Navigation/linkingConfig/index.ts | 14 +- src/libs/Navigation/linkingConfig/prefixes.ts | 15 - .../linkingConfig/subscribe/index.native.ts | 40 -- .../linkingConfig/subscribe/index.ts | 7 - .../setNavigationActionToMicrotaskQueue.ts | 13 - src/libs/Navigation/switchPolicyID.ts | 14 +- src/libs/Navigation/types.ts | 3 - src/libs/NextStepUtils.ts | 47 +- .../LocalNotification/BrowserNotifications.ts | 2 +- .../PushNotification/index.native.ts | 2 +- src/libs/OnboardingRefManager.ts | 17 - src/libs/OptionsListUtils.ts | 129 ++-- src/libs/PersonalDetailsUtils.ts | 9 +- src/libs/PolicyUtils.ts | 19 +- src/libs/Pusher/pusher.ts | 30 +- src/libs/Queue/Queue.ts | 81 --- src/libs/Queue/QueueType.ts | 10 - src/libs/ReportActionsUtils.ts | 57 +- src/libs/ReportUtils.ts | 212 ++---- src/libs/SearchUtils.ts | 73 +-- src/libs/SidebarUtils.ts | 3 +- src/libs/StringUtils.ts | 9 +- src/libs/TransactionUtils.ts | 2 +- src/libs/UserUtils.ts | 39 +- src/libs/ValidationUtils.ts | 2 +- src/libs/Violations/ViolationsUtils.ts | 2 - src/libs/Violations/propTypes.ts | 32 + src/libs/actions/App.ts | 2 +- src/libs/actions/BankAccounts.ts | 3 +- src/libs/actions/Device/index.ts | 2 +- src/libs/actions/FormActions.ts | 2 +- src/libs/actions/IOU.ts | 214 +++--- src/libs/actions/OnyxUpdates.ts | 6 +- src/libs/actions/{Policy => }/Policy.ts | 423 +++++++++++- src/libs/actions/Policy/Category.ts | 609 ------------------ src/libs/actions/Policy/Tag.ts | 598 ----------------- src/libs/actions/Report.ts | 151 ++--- src/libs/actions/ReportActions.ts | 4 +- src/libs/actions/Session/index.ts | 6 - src/libs/actions/Task.ts | 3 +- src/libs/actions/Transaction.ts | 3 - src/libs/actions/UserLocation.ts | 6 +- src/libs/fileDownload/index.desktop.ts | 37 -- src/libs/fileDownload/index.ts | 5 +- src/libs/fileDownload/types.ts | 2 +- .../getCurrentPosition.types.ts | 2 +- src/libs/isPublicScreenRoute.ts | 8 - src/libs/migrations/RenameReceiptFilename.ts | 4 +- .../TransactionBackupsToCollection.ts | 4 +- src/pages/ChatFinderPage/index.tsx | 21 +- src/pages/DetailsPage.tsx | 4 +- src/pages/GetAssistancePage.tsx | 4 +- src/pages/GroupChatNameEditPage.tsx | 3 +- src/pages/NewChatConfirmPage.tsx | 2 - src/pages/NewChatPage.tsx | 5 +- .../BaseOnboardingPersonalDetails.tsx | 3 +- .../BaseOnboardingPurpose.tsx | 30 +- .../OnboardingWork/BaseOnboardingWork.tsx | 2 +- .../PrivateNotes/PrivateNotesEditPage.tsx | 10 +- .../PrivateNotes/PrivateNotesListPage.tsx | 6 +- src/pages/ProfilePage.tsx | 204 +++--- .../BusinessTypeSelectorModal.tsx | 1 - .../components/BankAccountValidationForm.tsx | 3 +- .../utils/getValuesForBeneficialOwner.ts | 3 +- src/pages/ReportDetailsPage.tsx | 103 ++- src/pages/ReportParticipantDetailsPage.tsx | 5 +- .../ReportParticipantRoleSelectionPage.tsx | 1 - src/pages/ReportParticipantsPage.tsx | 4 +- src/pages/RoomMembersPage.tsx | 26 +- src/pages/Search/SearchPage.tsx | 10 +- src/pages/Search/SearchPageBottomTab.tsx | 7 +- src/pages/ValidateLoginPage/index.website.tsx | 11 +- src/pages/WorkspaceSwitcherPage/index.tsx | 1 - src/pages/home/HeaderView.tsx | 17 +- src/pages/home/ReportScreen.tsx | 290 +++++---- .../report/AnimatedEmptyStateBackground.tsx | 15 +- .../report/ContextMenu/ContextMenuActions.tsx | 8 +- .../report/ReactionList/BaseReactionList.tsx | 4 +- .../ComposerWithSuggestions.tsx | 19 +- .../ReportActionCompose/SuggestionMention.tsx | 4 +- src/pages/home/report/ReportActionItem.tsx | 54 +- .../home/report/ReportActionItemCreated.tsx | 38 +- .../home/report/ReportActionItemFragment.tsx | 2 +- .../report/ReportActionItemParentAction.tsx | 7 +- .../home/report/ReportActionItemSingle.tsx | 19 +- src/pages/home/report/ReportActionsList.tsx | 12 +- src/pages/home/report/ReportActionsView.tsx | 40 +- src/pages/home/report/ReportFooter.tsx | 11 +- .../report/reportActionFragmentPropTypes.js | 32 + .../home/report/reportActionPropTypes.js | 31 + .../sidebar/ProfileAvatarWithIndicator.tsx | 7 +- src/pages/home/sidebar/SidebarLinksData.tsx | 2 +- .../FloatingActionButtonAndPopover.tsx | 2 +- .../MoneyRequestParticipantsSelector.tsx | 3 +- .../request/step/IOURequestStepCategory.tsx | 2 +- .../step/IOURequestStepConfirmation.tsx | 2 +- .../request/step/IOURequestStepCurrency.tsx | 3 +- .../request/step/IOURequestStepDistance.tsx | 13 +- .../step/IOURequestStepDistanceRate.tsx | 19 - .../step/IOURequestStepScan/index.native.tsx | 6 +- .../request/step/IOURequestStepSendFrom.tsx | 1 - .../request/step/IOURequestStepSplitPayer.tsx | 1 - .../step/IOURequestStepTaxAmountPage.tsx | 2 +- .../request/step/IOURequestStepWaypoint.tsx | 2 - .../ShareLogList/BaseShareLogList.tsx | 1 - .../ExitSurvey/ExitSurveyConfirmPage.tsx | 1 - src/pages/settings/InitialSettingsPage.tsx | 11 +- .../settings/Preferences/LanguagePage.tsx | 1 - .../settings/Preferences/PriorityModePage.tsx | 1 - src/pages/settings/Preferences/ThemePage.tsx | 1 - .../Profile/CustomStatus/StatusPage.tsx | 24 +- .../Profile/PersonalDetails/AddressPage.tsx | 20 +- .../PersonalDetails/CountrySelectionPage.tsx | 1 - .../PersonalDetails/StateSelectionPage.tsx | 1 - src/pages/settings/Profile/PronounsPage.tsx | 1 - .../settings/Profile/TimezoneSelectPage.tsx | 1 - .../Report/NotificationPreferencePage.tsx | 1 - src/pages/settings/Report/VisibilityPage.tsx | 1 - .../settings/Report/WriteCapabilityPage.tsx | 1 - .../TwoFactorAuth/Steps/CodesStep.tsx | 4 +- .../Subscription/SubscriptionSettingsPage.tsx | 27 - .../Wallet/ActivatePhysicalCardPage.tsx | 4 +- src/pages/tasks/TaskAssigneeSelectorModal.tsx | 1 - .../TaskShareDestinationSelectorModal.tsx | 1 - .../workspace/AccessOrNotFoundWrapper.tsx | 2 +- src/pages/workspace/WorkspaceAvatar.tsx | 2 +- src/pages/workspace/WorkspaceInitialPage.tsx | 2 +- .../workspace/WorkspaceInviteMessagePage.tsx | 2 +- src/pages/workspace/WorkspaceInvitePage.tsx | 2 +- src/pages/workspace/WorkspaceJoinUserPage.tsx | 2 +- src/pages/workspace/WorkspaceMembersPage.tsx | 6 +- .../workspace/WorkspaceMoreFeaturesPage.tsx | 9 +- src/pages/workspace/WorkspaceNamePage.tsx | 2 +- .../workspace/WorkspaceProfileAddressPage.tsx | 2 +- .../WorkspaceProfileCurrencyPage.tsx | 4 +- .../WorkspaceProfileDescriptionPage.tsx | 2 +- src/pages/workspace/WorkspaceProfilePage.tsx | 4 +- src/pages/workspace/WorkspacesListPage.tsx | 2 +- src/pages/workspace/WorkspacesListRow.tsx | 22 +- .../advanced/QuickbooksAccountSelectPage.tsx | 1 - .../qbo/advanced/QuickbooksAdvancedPage.tsx | 2 +- .../QuickbooksInvoiceAccountSelectPage.tsx | 1 - ...uickbooksCompanyCardExpenseAccountPage.tsx | 1 + ...ompanyCardExpenseAccountSelectCardPage.tsx | 1 - ...oksCompanyCardExpenseAccountSelectPage.tsx | 1 - .../export/QuickbooksExportDateSelectPage.tsx | 1 - ...ickbooksExportInvoiceAccountSelectPage.tsx | 1 - ...NonReimbursableDefaultVendorSelectPage.tsx | 1 - ...oksOutOfPocketExpenseAccountSelectPage.tsx | 1 - ...ooksOutOfPocketExpenseEntitySelectPage.tsx | 1 - ...ooksPreferredExporterConfigurationPage.tsx | 1 - .../XeroMapCostCentersToConfigurationPage.tsx | 1 - .../XeroMapRegionsToConfigurationPage.tsx | 1 - .../XeroOrganizationConfigurationPage.tsx | 1 - .../xero/XeroTaxesConfigurationPage.tsx | 2 +- .../XeroTrackingCategoryConfigurationPage.tsx | 2 +- .../xero/advanced/XeroAdvancedPage.tsx | 2 +- .../xero/import/XeroChartOfAccountsPage.tsx | 2 +- .../import/XeroCustomerConfigurationPage.tsx | 2 +- .../categories/CategorySettingsPage.tsx | 8 +- .../categories/CreateCategoryPage.tsx | 4 +- .../workspace/categories/EditCategoryPage.tsx | 4 +- .../categories/WorkspaceCategoriesPage.tsx | 12 +- .../WorkspaceCategoriesSettingsPage.tsx | 5 +- .../distanceRates/CreateDistanceRatePage.tsx | 2 +- .../PolicyDistanceRateDetailsPage.tsx | 3 +- .../PolicyDistanceRateEditPage.tsx | 2 +- .../distanceRates/PolicyDistanceRatesPage.tsx | 8 +- .../PolicyDistanceRatesSettingsPage.tsx | 5 +- .../members/WorkspaceMemberDetailsPage.tsx | 7 +- ...rkspaceMemberDetailsRoleSelectionModal.tsx | 1 - .../members/WorkspaceOwnerChangeCheck.tsx | 2 +- .../members/WorkspaceOwnerChangeErrorPage.tsx | 2 +- .../WorkspaceOwnerChangeSuccessPage.tsx | 2 +- .../WorkspaceOwnerChangeWrapperPage.tsx | 2 +- .../members/WorkspaceOwnerPaymentCardForm.tsx | 2 +- .../WorkspaceRateAndUnitPage/InitialPage.tsx | 2 +- .../WorkspaceRateAndUnitPage/RatePage.tsx | 2 +- .../WorkspaceRateAndUnitPage/UnitPage.tsx | 2 +- .../reimburse/WorkspaceReimburseView.tsx | 2 +- src/pages/workspace/tags/EditTagPage.tsx | 6 +- src/pages/workspace/tags/TagSettingsPage.tsx | 8 +- .../workspace/tags/WorkspaceCreateTagPage.tsx | 4 +- .../workspace/tags/WorkspaceEditTagsPage.tsx | 4 +- .../workspace/tags/WorkspaceTagsPage.tsx | 24 +- .../tags/WorkspaceTagsSettingsPage.tsx | 4 +- .../workspace/tags/WorkspaceViewTagsPage.tsx | 14 +- .../workspace/taxes/WorkspaceTaxesPage.tsx | 9 +- .../WorkspaceTaxesSettingsCustomTaxName.tsx | 2 +- .../WorkspaceTaxesSettingsForeignCurrency.tsx | 2 +- ...orkspaceTaxesSettingsWorkspaceCurrency.tsx | 2 +- src/pages/workspace/withPolicy.tsx | 99 ++- .../workflows/ToggleSettingsOptionRow.tsx | 7 +- .../WorkspaceAutoReportingFrequencyPage.tsx | 2 +- ...orkspaceAutoReportingMonthlyOffsetPage.tsx | 3 +- .../WorkspaceWorkflowsApproverPage.tsx | 7 +- .../workflows/WorkspaceWorkflowsPage.tsx | 110 ++-- .../workflows/WorkspaceWorkflowsPayerPage.tsx | 7 +- .../ButtonWithDropdownMenu.stories.tsx | 2 +- src/stories/PromotedActionBar.stories.tsx | 70 -- src/styles/index.ts | 34 +- src/styles/stylePropTypes.js | 5 + .../index.native.ts | 5 - .../index.ts | 7 - .../types.ts | 5 - .../utils/generators/ModalStyleUtils.ts | 2 +- src/styles/utils/index.ts | 70 +- src/styles/variables.ts | 9 - src/types/onyx/OnyxCommon.ts | 4 +- src/types/onyx/Policy.ts | 10 - src/types/onyx/RecentWaypoint.ts | 3 - src/types/onyx/Report.ts | 1 - src/types/onyx/SearchResults.ts | 43 +- src/types/onyx/Transaction.ts | 4 - src/types/onyx/UserMetadata.ts | 8 - src/types/onyx/index.ts | 2 - src/types/utils/isLoadingOnyxValue.ts | 4 +- .../EnforceActionExportRestrictions.ts | 2 +- tests/actions/IOUTest.ts | 6 +- tests/actions/PolicyCategoryTest.ts | 12 +- tests/actions/PolicyMemberTest.ts | 2 +- tests/actions/PolicyProfileTest.ts | 2 +- tests/actions/PolicyTagTest.ts | 30 +- tests/actions/PolicyTaxTest.ts | 2 +- tests/actions/PolicyTest.ts | 2 +- tests/e2e/server/index.ts | 2 +- tests/perf-test/ChatFinderPage.perf-test.tsx | 15 +- tests/perf-test/ReportScreen.perf-test.tsx | 5 +- tests/perf-test/SidebarLinks.perf-test.tsx | 9 +- tests/ui/UnreadIndicatorsTest.tsx | 8 +- tests/unit/MiddlewareTest.ts | 8 +- tests/unit/NextStepUtilsTest.ts | 33 +- tests/unit/OptionsListUtilsTest.ts | 138 +--- tests/unit/ReportUtilsTest.ts | 11 +- tests/unit/markPullRequestsAsDeployedTest.ts | 6 +- tests/utils/TestHelper.ts | 4 +- tests/utils/collections/reportActions.ts | 26 +- web/gtm.js | 10 + web/index.html | 6 +- web/thirdPartyScripts.js | 155 ----- workflow_tests/utils/ExtendedAct.ts | 4 +- workflow_tests/utils/preGenerateTest.ts | 8 +- 531 files changed, 5407 insertions(+), 7264 deletions(-) delete mode 100644 assets/images/comment-bubbles.svg delete mode 100644 assets/images/receipt-plus.svg delete mode 100644 desktop/createDownloadQueue.ts delete mode 100644 desktop/electronDownloadManagerType.ts create mode 100644 docs/articles/expensify-classic/expenses/Referral-Program.md delete mode 100644 docs/articles/expensify-classic/expensify-card/Change-Expensify-Card-limit.md delete mode 100644 docs/articles/expensify-classic/expensify-card/Deactivate-or-cancel-an-Expensify-Card.md create mode 100644 docs/articles/new-expensify/connections/Coming-Soon.md delete mode 100644 docs/articles/new-expensify/connections/Set-up-Xero-connection.md delete mode 100644 docs/articles/new-expensify/expenses/Approve-and-pay-expenses.md delete mode 100644 docs/articles/new-expensify/expensify-card/Check-Expensify-Card-limit.md create mode 100644 docs/articles/new-expensify/expensify-card/Coming-Soon.md delete mode 100644 docs/articles/new-expensify/expensify-card/Dispute-Expensify-Card-transaction.md delete mode 100644 docs/articles/new-expensify/expensify-card/Update-your-Expensify-Card-mailing-address.md delete mode 100644 docs/articles/new-expensify/expensify-card/Use-your-Expensify-Card.md create mode 100644 docs/articles/new-expensify/workspaces/Coming-Soon.md delete mode 100644 jest/setupMockFullstoryLib.ts rename patches/{react-native-web+0.19.12+001+initial.patch => react-native-web+0.19.9+001+initial.patch} (98%) create mode 100644 patches/react-native-web+0.19.9+002+measureInWindow.patch rename patches/{react-native-web+0.19.12+002+fixLastSpacer.patch => react-native-web+0.19.9+004+fixLastSpacer.patch} (100%) rename patches/{react-native-web+0.19.12+003+image-header-support.patch => react-native-web+0.19.9+005+image-header-support.patch} (95%) rename patches/{react-native-web+0.19.12+004+fixPointerEventDown.patch => react-native-web+0.19.9+006+fixPointerEventDown.patch} (100%) rename patches/{react-native-web+0.19.12+005+osr-improvement.patch => react-native-web+0.19.9+007+osr-improvement.patch} (100%) create mode 100644 src/components/Attachments/AttachmentCarousel/AttachmentCarouselCellRenderer.tsx delete mode 100644 src/components/BlockedReportFooter.tsx create mode 100644 src/components/ChatDetailsQuickActionsBar.tsx delete mode 100644 src/components/FullstoryNative.tsx delete mode 100644 src/components/Image/ImageBehaviorContextProvider.tsx create mode 100644 src/components/Image/sourcePropTypes/index.js create mode 100644 src/components/Image/sourcePropTypes/index.native.js delete mode 100644 src/components/PromotedActionsBar.tsx delete mode 100644 src/components/SelectionList/Search/ExpenseItemHeaderNarrow.tsx delete mode 100644 src/components/SelectionList/Search/ReportListItem.tsx delete mode 100644 src/components/SelectionList/Search/TransactionListItem.tsx delete mode 100644 src/components/SelectionList/Search/TransactionListItemRow.tsx delete mode 100644 src/components/SelectionList/Search/UserInfoCell.tsx rename src/components/SelectionList/{Search => }/TextWithIconCell.tsx (100%) create mode 100644 src/components/SelectionList/TransactionListItem.tsx create mode 100644 src/components/avatarPropTypes.js create mode 100644 src/components/categoryPropTypes.js create mode 100644 src/components/optionPropTypes.js create mode 100644 src/components/participantPropTypes.js create mode 100644 src/components/tagPropTypes.js create mode 100644 src/hooks/useAnimatedHighlightStyle/config.native.ts create mode 100644 src/hooks/useAnimatedHighlightStyle/config.ts delete mode 100644 src/libs/Fullstory/index.native.ts delete mode 100644 src/libs/Fullstory/index.ts delete mode 100644 src/libs/Fullstory/types.ts delete mode 100644 src/libs/Navigation/extrapolateStateFromParams.ts create mode 100644 src/libs/Navigation/getTopmostNestedRHPRoute.ts delete mode 100644 src/libs/Navigation/isSideModalNavigator.ts rename src/libs/Navigation/{linkTo/index.ts => linkTo.ts} (59%) delete mode 100644 src/libs/Navigation/linkTo/getActionForBottomTabNavigator.ts delete mode 100644 src/libs/Navigation/linkTo/getMinimalAction.ts delete mode 100644 src/libs/Navigation/linkTo/types.ts delete mode 100644 src/libs/Navigation/linkingConfig/extractPolicyIDsFromState.ts delete mode 100644 src/libs/Navigation/linkingConfig/prefixes.ts delete mode 100644 src/libs/Navigation/linkingConfig/subscribe/index.native.ts delete mode 100644 src/libs/Navigation/linkingConfig/subscribe/index.ts delete mode 100644 src/libs/Navigation/setNavigationActionToMicrotaskQueue.ts delete mode 100644 src/libs/OnboardingRefManager.ts delete mode 100644 src/libs/Queue/Queue.ts delete mode 100644 src/libs/Queue/QueueType.ts create mode 100644 src/libs/Violations/propTypes.ts rename src/libs/actions/{Policy => }/Policy.ts (92%) delete mode 100644 src/libs/actions/Policy/Category.ts delete mode 100644 src/libs/actions/Policy/Tag.ts delete mode 100644 src/libs/fileDownload/index.desktop.ts delete mode 100644 src/libs/isPublicScreenRoute.ts create mode 100644 src/pages/home/report/reportActionFragmentPropTypes.js create mode 100644 src/pages/home/report/reportActionPropTypes.js delete mode 100644 src/pages/settings/Subscription/SubscriptionSettingsPage.tsx delete mode 100644 src/stories/PromotedActionBar.stories.tsx create mode 100644 src/styles/stylePropTypes.js delete mode 100644 src/styles/utils/chatContentScrollViewPlatformStyles/index.native.ts delete mode 100644 src/styles/utils/chatContentScrollViewPlatformStyles/index.ts delete mode 100644 src/styles/utils/chatContentScrollViewPlatformStyles/types.ts delete mode 100644 src/types/onyx/UserMetadata.ts create mode 100644 web/gtm.js delete mode 100644 web/thirdPartyScripts.js diff --git a/.eslintrc.js b/.eslintrc.js index 135252825dcf..1f23ae22ca7e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -100,6 +100,7 @@ module.exports = { __DEV__: 'readonly', }, rules: { + '@typescript-eslint/no-unsafe-argument': 'off', '@typescript-eslint/no-unsafe-call': 'off', '@typescript-eslint/no-unsafe-member-access': 'off', '@typescript-eslint/no-unsafe-assignment': 'off', @@ -155,7 +156,6 @@ module.exports = { fixMixedExportsWithInlineTypeSpecifier: false, }, ], - '@typescript-eslint/no-use-before-define': ['error', {functions: false}], // ESLint core rules 'es/no-nullish-coalescing-operators': 'off', diff --git a/.github/actions/javascript/bumpVersion/bumpVersion.ts b/.github/actions/javascript/bumpVersion/bumpVersion.ts index eba79c7c9edb..ed4828367cf2 100644 --- a/.github/actions/javascript/bumpVersion/bumpVersion.ts +++ b/.github/actions/javascript/bumpVersion/bumpVersion.ts @@ -1,7 +1,6 @@ import * as core from '@actions/core'; import {exec as originalExec} from 'child_process'; import fs from 'fs'; -import type {PackageJson} from 'type-fest'; import {promisify} from 'util'; import {generateAndroidVersionCode, updateAndroidVersion, updateiOSVersion} from '@github/libs/nativeVersionUpdater'; import * as versionUpdater from '@github/libs/versionUpdater'; @@ -20,7 +19,7 @@ function updateNativeVersions(version: string) { .then(() => { console.log('Successfully updated Android!'); }) - .catch((err: string | Error) => { + .catch((err) => { console.error('Error updating Android'); core.setFailed(err); }); @@ -48,12 +47,8 @@ if (!semanticVersionLevel || !Object.keys(versionUpdater.SEMANTIC_VERSION_LEVELS console.log(`Invalid input for 'SEMVER_LEVEL': ${semanticVersionLevel}`, `Defaulting to: ${semanticVersionLevel}`); } -const {version: previousVersion}: PackageJson = JSON.parse(fs.readFileSync('./package.json').toString()); -if (!previousVersion) { - core.setFailed('Error: Could not read package.json'); -} - -const newVersion = versionUpdater.incrementVersion(previousVersion ?? '', semanticVersionLevel); +const {version: previousVersion} = JSON.parse(fs.readFileSync('./package.json').toString()); +const newVersion = versionUpdater.incrementVersion(previousVersion, semanticVersionLevel); console.log(`Previous version: ${previousVersion}`, `New version: ${newVersion}`); updateNativeVersions(newVersion); diff --git a/.github/actions/javascript/bumpVersion/index.js b/.github/actions/javascript/bumpVersion/index.js index e1a5cf13a8d9..d4a085fc9ddf 100644 --- a/.github/actions/javascript/bumpVersion/index.js +++ b/.github/actions/javascript/bumpVersion/index.js @@ -3478,10 +3478,7 @@ if (!semanticVersionLevel || !Object.keys(versionUpdater.SEMANTIC_VERSION_LEVELS console.log(`Invalid input for 'SEMVER_LEVEL': ${semanticVersionLevel}`, `Defaulting to: ${semanticVersionLevel}`); } const { version: previousVersion } = JSON.parse(fs_1.default.readFileSync('./package.json').toString()); -if (!previousVersion) { - core.setFailed('Error: Could not read package.json'); -} -const newVersion = versionUpdater.incrementVersion(previousVersion ?? '', semanticVersionLevel); +const newVersion = versionUpdater.incrementVersion(previousVersion, semanticVersionLevel); console.log(`Previous version: ${previousVersion}`, `New version: ${newVersion}`); updateNativeVersions(newVersion); console.log(`Setting npm version to ${newVersion}`); diff --git a/.github/actions/javascript/checkDeployBlockers/checkDeployBlockers.ts b/.github/actions/javascript/checkDeployBlockers/checkDeployBlockers.ts index d51d68796070..bf94b136ce43 100644 --- a/.github/actions/javascript/checkDeployBlockers/checkDeployBlockers.ts +++ b/.github/actions/javascript/checkDeployBlockers/checkDeployBlockers.ts @@ -60,7 +60,7 @@ const run = function (): Promise { core.setOutput('HAS_DEPLOY_BLOCKERS', false); } }) - .catch((error: string | Error) => { + .catch((error) => { console.error('A problem occurred while trying to communicate with the GitHub API', error); core.setFailed(error); }); diff --git a/.github/actions/javascript/getGraphiteString/getGraphiteString.ts b/.github/actions/javascript/getGraphiteString/getGraphiteString.ts index c486fdbd39f3..57a941105f90 100644 --- a/.github/actions/javascript/getGraphiteString/getGraphiteString.ts +++ b/.github/actions/javascript/getGraphiteString/getGraphiteString.ts @@ -28,7 +28,7 @@ const run = () => { // Extract timestamp, Graphite accepts timestamp in seconds if (current.metadata?.creationDate) { - timestamp = Math.floor(new Date(current.metadata.creationDate as string).getTime() / 1000); + timestamp = Math.floor(new Date(current.metadata.creationDate).getTime() / 1000); } if (current.name && current.meanDuration && current.meanCount && timestamp) { diff --git a/.github/actions/javascript/getPreviousVersion/getPreviousVersion.ts b/.github/actions/javascript/getPreviousVersion/getPreviousVersion.ts index 262b603124fa..dc1e99d1e3b8 100644 --- a/.github/actions/javascript/getPreviousVersion/getPreviousVersion.ts +++ b/.github/actions/javascript/getPreviousVersion/getPreviousVersion.ts @@ -1,6 +1,5 @@ import * as core from '@actions/core'; import {readFileSync} from 'fs'; -import type {PackageJson} from 'type-fest'; import * as versionUpdater from '@github/libs/versionUpdater'; const semverLevel = core.getInput('SEMVER_LEVEL', {required: true}); @@ -8,10 +7,6 @@ if (!semverLevel || !Object.values(versionUpdater.SEMANTIC_VERSION_LEVEL core.setFailed(`'Error: Invalid input for 'SEMVER_LEVEL': ${semverLevel}`); } -const {version: currentVersion}: PackageJson = JSON.parse(readFileSync('./package.json', 'utf8')); -if (!currentVersion) { - core.setFailed('Error: Could not read package.json'); -} - -const previousVersion = versionUpdater.getPreviousVersion(currentVersion ?? '', semverLevel); +const {version: currentVersion} = JSON.parse(readFileSync('./package.json', 'utf8')); +const previousVersion = versionUpdater.getPreviousVersion(currentVersion, semverLevel); core.setOutput('PREVIOUS_VERSION', previousVersion); diff --git a/.github/actions/javascript/getPreviousVersion/index.js b/.github/actions/javascript/getPreviousVersion/index.js index 8eac2f62f03e..f372f0fdaf99 100644 --- a/.github/actions/javascript/getPreviousVersion/index.js +++ b/.github/actions/javascript/getPreviousVersion/index.js @@ -2728,10 +2728,7 @@ if (!semverLevel || !Object.values(versionUpdater.SEMANTIC_VERSION_LEVELS).inclu core.setFailed(`'Error: Invalid input for 'SEMVER_LEVEL': ${semverLevel}`); } const { version: currentVersion } = JSON.parse((0, fs_1.readFileSync)('./package.json', 'utf8')); -if (!currentVersion) { - core.setFailed('Error: Could not read package.json'); -} -const previousVersion = versionUpdater.getPreviousVersion(currentVersion ?? '', semverLevel); +const previousVersion = versionUpdater.getPreviousVersion(currentVersion, semverLevel); core.setOutput('PREVIOUS_VERSION', previousVersion); diff --git a/.github/actions/javascript/reviewerChecklist/reviewerChecklist.ts b/.github/actions/javascript/reviewerChecklist/reviewerChecklist.ts index f57ef6c36a04..aabc6b33086a 100644 --- a/.github/actions/javascript/reviewerChecklist/reviewerChecklist.ts +++ b/.github/actions/javascript/reviewerChecklist/reviewerChecklist.ts @@ -90,7 +90,7 @@ function checkIssueForCompletedChecklist(numberOfChecklistItems: number) { getNumberOfItemsFromReviewerChecklist() .then(checkIssueForCompletedChecklist) - .catch((err: string | Error) => { + .catch((err) => { console.error(err); core.setFailed(err); }); diff --git a/.github/scripts/detectRedirectCycle.ts b/.github/scripts/detectRedirectCycle.ts index 6da0ecba158c..5aa0d1daf342 100644 --- a/.github/scripts/detectRedirectCycle.ts +++ b/.github/scripts/detectRedirectCycle.ts @@ -52,7 +52,7 @@ function detectCycle(): boolean { fs.createReadStream(`${process.cwd()}/docs/redirects.csv`) .pipe(parser) - .on('data', (row: [string, string]) => { + .on('data', (row) => { // Create a directed graph of sourceURL -> targetURL addEdge(row[0], row[1]); }) diff --git a/.github/workflows/e2ePerformanceTests.yml b/.github/workflows/e2ePerformanceTests.yml index 7e7d55ac5d2e..10723d5efa04 100644 --- a/.github/workflows/e2ePerformanceTests.yml +++ b/.github/workflows/e2ePerformanceTests.yml @@ -15,10 +15,6 @@ on: type: string required: true -concurrency: - group: ${{ github.ref == 'refs/heads/main' && format('{0}-{1}', github.ref, github.sha) || github.ref }}-e2e - cancel-in-progress: true - jobs: buildBaseline: runs-on: ubuntu-latest-xl diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index da7757fcbfa8..50e886942c98 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -8,7 +8,7 @@ on: paths: ['**.js', '**.ts', '**.tsx', '**.json', '**.mjs', '**.cjs', 'config/.editorconfig', '.watchmanconfig', '.imgbotconfig'] concurrency: - group: ${{ github.ref == 'refs/heads/main' && format('{0}-{1}', github.ref, github.sha) || github.ref }}-lint + group: "${{ github.ref }}-lint" cancel-in-progress: true jobs: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d6b346cb3995..c76425a40fbf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,7 @@ on: paths: ['**.js', '**.ts', '**.tsx', '**.sh', 'package.json', 'package-lock.json'] concurrency: - group: ${{ github.ref == 'refs/heads/main' && format('{0}-{1}', github.ref, github.sha) || github.ref }}-jest + group: "${{ github.ref }}-jest" cancel-in-progress: true jobs: diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index 476b01f87b07..88d4d24a5723 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -7,10 +7,6 @@ on: branches-ignore: [staging, production] paths: ['**.js', '**.ts', '**.tsx', 'package.json', 'package-lock.json', 'tsconfig.json'] -concurrency: - group: ${{ github.ref == 'refs/heads/main' && format('{0}-{1}', github.ref, github.sha) || github.ref }}-typecheck - cancel-in-progress: true - jobs: typecheck: if: ${{ github.actor != 'OSBotify' || github.event_name == 'workflow_call' }} diff --git a/.storybook/public/favicon.svg b/.storybook/public/favicon.svg index 726791b58cfb..6bc34f89282e 100644 --- a/.storybook/public/favicon.svg +++ b/.storybook/public/favicon.svg @@ -1 +1,11 @@ - \ No newline at end of file + + + + + + + + + + + diff --git a/android/app/build.gradle b/android/app/build.gradle index 5fb10a8173b6..8527be5e433d 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -2,21 +2,12 @@ apply plugin: "com.android.application" apply plugin: "org.jetbrains.kotlin.android" apply plugin: "com.facebook.react" apply plugin: "com.google.firebase.firebase-perf" -apply plugin: "fullstory" apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle" /** * This is the configuration block to customize your React Native Android app. * By default you don't need to apply any configuration, just uncomment the lines you need. */ - -/* Fullstory settings */ -fullstory { - org 'o-1WN56P-na1' - enabledVariants 'all' - logcatLevel 'debug' -} - react { /* Folders */ // The root of your project, i.e. where "package.json" lives. Default is '..' @@ -107,8 +98,8 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1001047703 - versionName "1.4.77-3" + versionCode 1001047500 + versionName "1.4.75-0" // Supported language variants must be declared here to avoid from being removed during the compilation. // This also helps us to not include unnecessary language variants in the APK. resConfigs "en", "es" @@ -171,7 +162,7 @@ android { signingConfig null // buildTypes take precedence over productFlavors when it comes to the signing configuration, // thus we need to manually set the signing config, so that the e2e uses the debug config again. - // In other words, the signingConfig setting above will be ignored when we build the flavor in release mode. + // In other words, the signingConfig setting above will be ignored when we build the flavor in release mode. productFlavors.all { flavor -> // All release builds should be signed with the release config ... flavor.signingConfig signingConfigs.release diff --git a/android/build.gradle b/android/build.gradle index 52c998998ba0..10600480d8bb 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -20,7 +20,6 @@ buildscript { repositories { google() mavenCentral() - maven {url "https://maven.fullstory.com"} } dependencies { classpath("com.android.tools.build:gradle") @@ -28,9 +27,6 @@ buildscript { classpath("com.google.gms:google-services:4.3.4") classpath("com.google.firebase:firebase-crashlytics-gradle:2.7.1") classpath("com.google.firebase:perf-plugin:1.4.1") - // Fullstory integration - classpath ("com.fullstory:gradle-plugin-local:1.47.0") - // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") @@ -74,7 +70,7 @@ allprojects { // 'mapbox' is the fixed username for Mapbox's Maven repository. username = 'mapbox' - // The value for password is read from the 'MAPBOX_DOWNLOADS_TOKEN' gradle property. + // The value for password is read from the 'MAPBOX_DOWNLOADS_TOKEN' gradle property. // Run "npm run setup-mapbox-sdk" to set this property in «USER_HOME»/.gradle/gradle.properties // Example gradle.properties entry: diff --git a/assets/images/all.svg b/assets/images/all.svg index f6d9f46fc92e..d1a833d280ce 100644 --- a/assets/images/all.svg +++ b/assets/images/all.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/images/arrow-right.svg b/assets/images/arrow-right.svg index 649582544847..8d2ded92e791 100644 --- a/assets/images/arrow-right.svg +++ b/assets/images/arrow-right.svg @@ -1 +1,10 @@ - \ No newline at end of file + + + + + + diff --git a/assets/images/avatars/fallback-avatar.svg b/assets/images/avatars/fallback-avatar.svg index 4a7fecf967db..69293d72aed9 100644 --- a/assets/images/avatars/fallback-avatar.svg +++ b/assets/images/avatars/fallback-avatar.svg @@ -1 +1,10 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_1.svg b/assets/images/avatars/group/default-avatar_1.svg index 1edcaa33a8aa..5d97c5bf855b 100644 --- a/assets/images/avatars/group/default-avatar_1.svg +++ b/assets/images/avatars/group/default-avatar_1.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_10.svg b/assets/images/avatars/group/default-avatar_10.svg index 62e818cb3e45..12c9dd76ae31 100644 --- a/assets/images/avatars/group/default-avatar_10.svg +++ b/assets/images/avatars/group/default-avatar_10.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_11.svg b/assets/images/avatars/group/default-avatar_11.svg index 2f976b05519d..97f17f30f3a7 100644 --- a/assets/images/avatars/group/default-avatar_11.svg +++ b/assets/images/avatars/group/default-avatar_11.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_12.svg b/assets/images/avatars/group/default-avatar_12.svg index c29992aa1793..f917fb136582 100644 --- a/assets/images/avatars/group/default-avatar_12.svg +++ b/assets/images/avatars/group/default-avatar_12.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_13.svg b/assets/images/avatars/group/default-avatar_13.svg index 5f6b69f01fe3..9e59fb9123a5 100644 --- a/assets/images/avatars/group/default-avatar_13.svg +++ b/assets/images/avatars/group/default-avatar_13.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_14.svg b/assets/images/avatars/group/default-avatar_14.svg index 27096ffd77d7..ca071e488416 100644 --- a/assets/images/avatars/group/default-avatar_14.svg +++ b/assets/images/avatars/group/default-avatar_14.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_15.svg b/assets/images/avatars/group/default-avatar_15.svg index 7cae7b1e6562..f227cc0717be 100644 --- a/assets/images/avatars/group/default-avatar_15.svg +++ b/assets/images/avatars/group/default-avatar_15.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_16.svg b/assets/images/avatars/group/default-avatar_16.svg index 1c02725ba669..efbb85f0b13d 100644 --- a/assets/images/avatars/group/default-avatar_16.svg +++ b/assets/images/avatars/group/default-avatar_16.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_17.svg b/assets/images/avatars/group/default-avatar_17.svg index 58a5014fae68..25c015c595ca 100644 --- a/assets/images/avatars/group/default-avatar_17.svg +++ b/assets/images/avatars/group/default-avatar_17.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_18.svg b/assets/images/avatars/group/default-avatar_18.svg index 43eeffb3db8d..a58ee6e66eff 100644 --- a/assets/images/avatars/group/default-avatar_18.svg +++ b/assets/images/avatars/group/default-avatar_18.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_2.svg b/assets/images/avatars/group/default-avatar_2.svg index f67a49d28cd2..ff1cc3e6dd2d 100644 --- a/assets/images/avatars/group/default-avatar_2.svg +++ b/assets/images/avatars/group/default-avatar_2.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_3.svg b/assets/images/avatars/group/default-avatar_3.svg index 471d3a348b4a..dde31b5d02a0 100644 --- a/assets/images/avatars/group/default-avatar_3.svg +++ b/assets/images/avatars/group/default-avatar_3.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_4.svg b/assets/images/avatars/group/default-avatar_4.svg index 46e22d28b6df..f6d02801bc6b 100644 --- a/assets/images/avatars/group/default-avatar_4.svg +++ b/assets/images/avatars/group/default-avatar_4.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_5.svg b/assets/images/avatars/group/default-avatar_5.svg index a81471170e23..fdabd36e2058 100644 --- a/assets/images/avatars/group/default-avatar_5.svg +++ b/assets/images/avatars/group/default-avatar_5.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_6.svg b/assets/images/avatars/group/default-avatar_6.svg index 71da5e5631f3..6f1c6b80eda6 100644 --- a/assets/images/avatars/group/default-avatar_6.svg +++ b/assets/images/avatars/group/default-avatar_6.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_7.svg b/assets/images/avatars/group/default-avatar_7.svg index 080426ca0454..62d9a8b76bb8 100644 --- a/assets/images/avatars/group/default-avatar_7.svg +++ b/assets/images/avatars/group/default-avatar_7.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_8.svg b/assets/images/avatars/group/default-avatar_8.svg index b6b2d98579eb..206b10c2322b 100644 --- a/assets/images/avatars/group/default-avatar_8.svg +++ b/assets/images/avatars/group/default-avatar_8.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/avatars/group/default-avatar_9.svg b/assets/images/avatars/group/default-avatar_9.svg index 14885d4c401c..ffbe02ce57e8 100644 --- a/assets/images/avatars/group/default-avatar_9.svg +++ b/assets/images/avatars/group/default-avatar_9.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/back-left.svg b/assets/images/back-left.svg index 2c709401916f..2ddd554e9720 100644 --- a/assets/images/back-left.svg +++ b/assets/images/back-left.svg @@ -1 +1,10 @@ - \ No newline at end of file + + + + + + diff --git a/assets/images/coins.svg b/assets/images/coins.svg index 164fa84388f5..aa3c68e72ea8 100644 --- a/assets/images/coins.svg +++ b/assets/images/coins.svg @@ -1 +1,8 @@ - \ No newline at end of file + + + + + + + + diff --git a/assets/images/comment-bubbles.svg b/assets/images/comment-bubbles.svg deleted file mode 100644 index 1277b8958c94..000000000000 --- a/assets/images/comment-bubbles.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/images/connection-complete.svg b/assets/images/connection-complete.svg index d864d9a33626..fbfb2b041358 100644 --- a/assets/images/connection-complete.svg +++ b/assets/images/connection-complete.svg @@ -1 +1,330 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/credit-card-hourglass.svg b/assets/images/credit-card-hourglass.svg index 28ffe766b597..2acd013fbe59 100644 --- a/assets/images/credit-card-hourglass.svg +++ b/assets/images/credit-card-hourglass.svg @@ -1 +1,19 @@ - \ No newline at end of file + + + + + + + + diff --git a/assets/images/document-plus.svg b/assets/images/document-plus.svg index 729bc98d4f8a..cce2e3027cea 100644 --- a/assets/images/document-plus.svg +++ b/assets/images/document-plus.svg @@ -1 +1,5 @@ - \ No newline at end of file + + + + + diff --git a/assets/images/document-slash.svg b/assets/images/document-slash.svg index e8a0ff20702e..ebb183142e40 100644 --- a/assets/images/document-slash.svg +++ b/assets/images/document-slash.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/assets/images/integrationicons/qbo-icon-square.svg b/assets/images/integrationicons/qbo-icon-square.svg index e297b597f980..a8ce3468ffbf 100644 --- a/assets/images/integrationicons/qbo-icon-square.svg +++ b/assets/images/integrationicons/qbo-icon-square.svg @@ -1 +1,14 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/integrationicons/xero-icon-square.svg b/assets/images/integrationicons/xero-icon-square.svg index 43774919c92c..94b79bb3533d 100644 --- a/assets/images/integrationicons/xero-icon-square.svg +++ b/assets/images/integrationicons/xero-icon-square.svg @@ -1 +1,32 @@ - \ No newline at end of file + + + + + + + + + + + diff --git a/assets/images/invoice-generic.svg b/assets/images/invoice-generic.svg index 251918c4cff4..d0e2662c4084 100644 --- a/assets/images/invoice-generic.svg +++ b/assets/images/invoice-generic.svg @@ -1 +1,15 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/money-waving.svg b/assets/images/money-waving.svg index e68744d595be..5242e31092a0 100644 --- a/assets/images/money-waving.svg +++ b/assets/images/money-waving.svg @@ -1 +1,81 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/new-expensify-adhoc.svg b/assets/images/new-expensify-adhoc.svg index 8da6331c8c94..b3dd92fbbaae 100644 --- a/assets/images/new-expensify-adhoc.svg +++ b/assets/images/new-expensify-adhoc.svg @@ -1 +1,31 @@ - \ No newline at end of file + + + + + + + + + + + + + + + diff --git a/assets/images/new-expensify-dev.svg b/assets/images/new-expensify-dev.svg index fcb371f586b6..316da6b5aa4d 100644 --- a/assets/images/new-expensify-dev.svg +++ b/assets/images/new-expensify-dev.svg @@ -1 +1,27 @@ - \ No newline at end of file + + + + + + + + + + + + + + + diff --git a/assets/images/new-expensify-stg.svg b/assets/images/new-expensify-stg.svg index d536257fc880..1a1994c7a9fd 100644 --- a/assets/images/new-expensify-stg.svg +++ b/assets/images/new-expensify-stg.svg @@ -1 +1,35 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/play.svg b/assets/images/play.svg index 98a8c00520fc..5f7e14969529 100644 --- a/assets/images/play.svg +++ b/assets/images/play.svg @@ -1 +1,6 @@ - \ No newline at end of file + + + + + diff --git a/assets/images/qrcode.svg b/assets/images/qrcode.svg index 47d61d7dd47c..42c49c958246 100644 --- a/assets/images/qrcode.svg +++ b/assets/images/qrcode.svg @@ -1 +1,14 @@ - \ No newline at end of file + + + + + + + + + + + + diff --git a/assets/images/receipt-plus.svg b/assets/images/receipt-plus.svg deleted file mode 100644 index ca4d96b3dfa5..000000000000 --- a/assets/images/receipt-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/images/receipt-scan.svg b/assets/images/receipt-scan.svg index f7c164c948c8..c93986de3c9b 100644 --- a/assets/images/receipt-scan.svg +++ b/assets/images/receipt-scan.svg @@ -1 +1,14 @@ - \ No newline at end of file + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__abacus.svg b/assets/images/simple-illustrations/simple-illustration__abacus.svg index 6dac0e9009b1..df94ab653982 100644 --- a/assets/images/simple-illustrations/simple-illustration__abacus.svg +++ b/assets/images/simple-illustrations/simple-illustration__abacus.svg @@ -1 +1,43 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__accounting.svg b/assets/images/simple-illustrations/simple-illustration__accounting.svg index 3213b4f93856..f7634141e966 100644 --- a/assets/images/simple-illustrations/simple-illustration__accounting.svg +++ b/assets/images/simple-illustrations/simple-illustration__accounting.svg @@ -1 +1,32 @@ - \ No newline at end of file + diff --git a/assets/images/simple-illustrations/simple-illustration__alert.svg b/assets/images/simple-illustrations/simple-illustration__alert.svg index cbf70b7655a7..2e7bca02f5e3 100644 --- a/assets/images/simple-illustrations/simple-illustration__alert.svg +++ b/assets/images/simple-illustrations/simple-illustration__alert.svg @@ -1 +1,15 @@ - \ No newline at end of file + + + + + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__binoculars.svg b/assets/images/simple-illustrations/simple-illustration__binoculars.svg index 5abacd359464..381be8988873 100644 --- a/assets/images/simple-illustrations/simple-illustration__binoculars.svg +++ b/assets/images/simple-illustrations/simple-illustration__binoculars.svg @@ -1 +1,50 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__car-ice.svg b/assets/images/simple-illustrations/simple-illustration__car-ice.svg index 9da1b844c101..ba2b79bca6aa 100644 --- a/assets/images/simple-illustrations/simple-illustration__car-ice.svg +++ b/assets/images/simple-illustrations/simple-illustration__car-ice.svg @@ -1 +1,53 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__car.svg b/assets/images/simple-illustrations/simple-illustration__car.svg index 9da1b844c101..2d420be6c3a9 100644 --- a/assets/images/simple-illustrations/simple-illustration__car.svg +++ b/assets/images/simple-illustrations/simple-illustration__car.svg @@ -1 +1,25 @@ - \ No newline at end of file + diff --git a/assets/images/simple-illustrations/simple-illustration__coins.svg b/assets/images/simple-illustrations/simple-illustration__coins.svg index 5caa1c0635d5..5350886402c6 100644 --- a/assets/images/simple-illustrations/simple-illustration__coins.svg +++ b/assets/images/simple-illustrations/simple-illustration__coins.svg @@ -1 +1,26 @@ - \ No newline at end of file + diff --git a/assets/images/simple-illustrations/simple-illustration__company-card.svg b/assets/images/simple-illustrations/simple-illustration__company-card.svg index 1f4e43dbc047..4121bbeeb205 100644 --- a/assets/images/simple-illustrations/simple-illustration__company-card.svg +++ b/assets/images/simple-illustrations/simple-illustration__company-card.svg @@ -1 +1,38 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__lightbulb.svg b/assets/images/simple-illustrations/simple-illustration__lightbulb.svg index 62a9cb0c3b76..1dc359764147 100644 --- a/assets/images/simple-illustrations/simple-illustration__lightbulb.svg +++ b/assets/images/simple-illustrations/simple-illustration__lightbulb.svg @@ -1 +1,33 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__pencil.svg b/assets/images/simple-illustrations/simple-illustration__pencil.svg index d3eaf8771021..8d9f06991612 100644 --- a/assets/images/simple-illustrations/simple-illustration__pencil.svg +++ b/assets/images/simple-illustrations/simple-illustration__pencil.svg @@ -1 +1,20 @@ - \ No newline at end of file + diff --git a/assets/images/simple-illustrations/simple-illustration__piggybank.svg b/assets/images/simple-illustrations/simple-illustration__piggybank.svg index ab1f73113f18..be87ff34752a 100644 --- a/assets/images/simple-illustrations/simple-illustration__piggybank.svg +++ b/assets/images/simple-illustrations/simple-illustration__piggybank.svg @@ -1 +1,50 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__receiptupload.svg b/assets/images/simple-illustrations/simple-illustration__receiptupload.svg index efff624f481f..b8fe5101715f 100644 --- a/assets/images/simple-illustrations/simple-illustration__receiptupload.svg +++ b/assets/images/simple-illustrations/simple-illustration__receiptupload.svg @@ -1 +1,22 @@ - \ No newline at end of file + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__splitbill.svg b/assets/images/simple-illustrations/simple-illustration__splitbill.svg index 1390a7cf9205..dfed7535ee90 100644 --- a/assets/images/simple-illustrations/simple-illustration__splitbill.svg +++ b/assets/images/simple-illustrations/simple-illustration__splitbill.svg @@ -1 +1,55 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__tag.svg b/assets/images/simple-illustrations/simple-illustration__tag.svg index 0a93014d11b3..0cac51679a5e 100644 --- a/assets/images/simple-illustrations/simple-illustration__tag.svg +++ b/assets/images/simple-illustrations/simple-illustration__tag.svg @@ -1 +1,33 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__teachers-unite.svg b/assets/images/simple-illustrations/simple-illustration__teachers-unite.svg index 27ce709889dd..b4edd9513722 100644 --- a/assets/images/simple-illustrations/simple-illustration__teachers-unite.svg +++ b/assets/images/simple-illustrations/simple-illustration__teachers-unite.svg @@ -1 +1,49 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/simple-illustrations/simple-illustration__workflows.svg b/assets/images/simple-illustrations/simple-illustration__workflows.svg index c11d2663997f..b684c58126f7 100644 --- a/assets/images/simple-illustrations/simple-illustration__workflows.svg +++ b/assets/images/simple-illustrations/simple-illustration__workflows.svg @@ -1 +1,153 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/stopwatch.svg b/assets/images/stopwatch.svg index b8ca46fd1fa1..0f26af219e04 100644 --- a/assets/images/stopwatch.svg +++ b/assets/images/stopwatch.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/images/suitcase.svg b/assets/images/suitcase.svg index 452c44f73e22..97036db6b5ac 100644 --- a/assets/images/suitcase.svg +++ b/assets/images/suitcase.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/assets/images/tag.svg b/assets/images/tag.svg index f25bcbe47f71..f5e13b8135cb 100644 --- a/assets/images/tag.svg +++ b/assets/images/tag.svg @@ -1 +1,12 @@ - \ No newline at end of file + + + + + + diff --git a/assets/images/thread.svg b/assets/images/thread.svg index 9f01ce7b2c06..3b8f334fafdd 100644 --- a/assets/images/thread.svg +++ b/assets/images/thread.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/assets/images/x-circle.svg b/assets/images/x-circle.svg index 5fa5f3741567..c186e41c4244 100644 --- a/assets/images/x-circle.svg +++ b/assets/images/x-circle.svg @@ -1 +1,12 @@ - \ No newline at end of file + + + + + + + \ No newline at end of file diff --git a/babel.config.js b/babel.config.js index 3023d37df7e0..9f8b7a711d78 100644 --- a/babel.config.js +++ b/babel.config.js @@ -35,17 +35,6 @@ const metro = { ['@babel/plugin-proposal-private-property-in-object', {loose: true}], // The reanimated babel plugin needs to be last, as stated here: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation 'react-native-reanimated/plugin', - - /* Fullstory */ - '@fullstory/react-native', - [ - '@fullstory/babel-plugin-annotate-react', - { - native: true, - setFSTagName: true, - }, - ], - // Import alias for native devices [ 'module-resolver', diff --git a/config/webpack/webpack.common.ts b/config/webpack/webpack.common.ts index 9d397b9557a3..7cafafca9973 100644 --- a/config/webpack/webpack.common.ts +++ b/config/webpack/webpack.common.ts @@ -98,7 +98,7 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment): {from: 'web/apple-touch-icon.png'}, {from: 'assets/images/expensify-app-icon.svg'}, {from: 'web/manifest.json'}, - {from: 'web/thirdPartyScripts.js'}, + {from: 'web/gtm.js'}, {from: 'assets/css', to: 'css'}, {from: 'assets/fonts/web', to: 'fonts'}, {from: 'assets/sounds', to: 'sounds'}, diff --git a/contributingGuides/CONTRIBUTING.md b/contributingGuides/CONTRIBUTING.md index aec527edabe0..13f7592b65e1 100644 --- a/contributingGuides/CONTRIBUTING.md +++ b/contributingGuides/CONTRIBUTING.md @@ -95,10 +95,9 @@ Additionally, if you want to discuss an idea with the open source community with #### Propose a solution for the job 4. You can propose solutions on any issue at any time, but if you propose solutions to jobs before the `Help Wanted` label is applied, you do so at your own risk. Proposals will not be reviewed until the label is added and there is always a chance that we might not add the label or hire an external contributor for the job. -5. Contributors should **not** submit proposals on issues when they have assigned issues or PRs that are awaiting an action from them. If so, they will be in violation of Rule #1 (Get Shit Done) in our [Code of Conduct](https://github.com/Expensify/App/blob/main/CODE_OF_CONDUCT.md) and will receive a warning. Multiple warnings can lead to removal from the program. -6. After you reproduce the issue, complete the [proposal template here](./PROPOSAL_TEMPLATE.md) and post it as a comment in the corresponding GitHub issue (linked in the Upwork job). +5. After you reproduce the issue, complete the [proposal template here](./PROPOSAL_TEMPLATE.md) and post it as a comment in the corresponding GitHub issue (linked in the Upwork job). - Note: Before submitting a proposal on an issue, be sure to read any other existing proposals. ALL NEW PROPOSALS MUST BE DIFFERENT FROM EXISTING PROPOSALS. The *difference* should be important, meaningful or considerable. -7. Refrain from leaving additional comments until someone from the Contributor-Plus team and / or someone from Expensify provides feedback on your proposal (do not create a pull request yet). +6. Refrain from leaving additional comments until someone from the Contributor-Plus team and / or someone from Expensify provides feedback on your proposal (do not create a pull request yet). - Do not leave more than one proposal. - Do not make extensive changes to your current proposal until after it has been reviewed. - If you want to make an entirely new proposal or update an existing proposal, please go back and edit your original proposal, then post a new comment to the issue in this format to alert everyone that it has been updated: @@ -106,8 +105,8 @@ Additionally, if you want to discuss an idea with the open source community with ## Proposal [Updated](link to proposal) ``` -8. If your proposal is accepted by the Expensify engineer assigned to the issue, Expensify will hire you on Upwork and assign the GitHub issue to you. -9. Once hired, post a comment in the Github issue stating when you expect to have your PR ready for review. +7. If your proposal is accepted by the Expensify engineer assigned to the issue, Expensify will hire you on Upwork and assign the GitHub issue to you. +8. Once hired, post a comment in the Github issue stating when you expect to have your PR ready for review. #### Begin coding your solution in a pull request 9. When you are ready to start, fork the repository and create a new branch. diff --git a/contributingGuides/STYLE.md b/contributingGuides/STYLE.md index f3e928da8cb0..22b1dea61bae 100644 --- a/contributingGuides/STYLE.md +++ b/contributingGuides/STYLE.md @@ -242,7 +242,7 @@ const foo: object = [1, 2, 3]; // TypeScript does not error If you know that the type of data is an object but don't know what properties or values it has beforehand, use `Record`. -> Even though `string` is specified as a key, `Record` type can still accept objects whose keys are numbers. This is because numbers are converted to strings when used as an object index. Note that you cannot use [symbols](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol) for `Record`. +> Even though `string` is specified as a key, `Record` type can still accepts objects whose keys are numbers. This is because numbers are converted to strings when used as an object index. Note that you cannot use [symbols](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol) for `Record`. ```ts function logObject(object: Record) { diff --git a/desktop/ELECTRON_EVENTS.ts b/desktop/ELECTRON_EVENTS.ts index b06794567c7d..607ad7b21580 100644 --- a/desktop/ELECTRON_EVENTS.ts +++ b/desktop/ELECTRON_EVENTS.ts @@ -9,10 +9,6 @@ const ELECTRON_EVENTS = { KEYBOARD_SHORTCUTS_PAGE: 'keyboard-shortcuts-page', START_UPDATE: 'start-update', UPDATE_DOWNLOADED: 'update-downloaded', - DOWNLOAD: 'download', - DOWNLOAD_COMPLETED: 'download-completed', - DOWNLOAD_FAILED: 'download-started', - DOWNLOAD_CANCELED: 'download-canceled', SILENT_UPDATE: 'silent-update', } as const; diff --git a/desktop/contextBridge.ts b/desktop/contextBridge.ts index 74b91c4634a1..487e528a7485 100644 --- a/desktop/contextBridge.ts +++ b/desktop/contextBridge.ts @@ -16,19 +16,10 @@ const WHITELIST_CHANNELS_RENDERER_TO_MAIN = [ ELECTRON_EVENTS.REQUEST_VISIBILITY, ELECTRON_EVENTS.START_UPDATE, ELECTRON_EVENTS.LOCALE_UPDATED, - ELECTRON_EVENTS.DOWNLOAD, ELECTRON_EVENTS.SILENT_UPDATE, ] as const; -const WHITELIST_CHANNELS_MAIN_TO_RENDERER = [ - ELECTRON_EVENTS.KEYBOARD_SHORTCUTS_PAGE, - ELECTRON_EVENTS.UPDATE_DOWNLOADED, - ELECTRON_EVENTS.FOCUS, - ELECTRON_EVENTS.BLUR, - ELECTRON_EVENTS.DOWNLOAD_COMPLETED, - ELECTRON_EVENTS.DOWNLOAD_FAILED, - ELECTRON_EVENTS.DOWNLOAD_CANCELED, -] as const; +const WHITELIST_CHANNELS_MAIN_TO_RENDERER = [ELECTRON_EVENTS.KEYBOARD_SHORTCUTS_PAGE, ELECTRON_EVENTS.UPDATE_DOWNLOADED, ELECTRON_EVENTS.FOCUS, ELECTRON_EVENTS.BLUR] as const; const getErrorMessage = (channel: string): string => `Electron context bridge cannot be used with channel '${channel}'`; @@ -76,7 +67,7 @@ contextBridge.exposeInMainWorld('electron', { } // Deliberately strip event as it includes `sender` - ipcRenderer.on(channel, (event, ...args: unknown[]) => func(...args)); + ipcRenderer.on(channel, (event, ...args) => func(...args)); }, /** Remove listeners for a single channel from the main process and sent to the renderer process. */ diff --git a/desktop/createDownloadQueue.ts b/desktop/createDownloadQueue.ts deleted file mode 100644 index 132848c5da9e..000000000000 --- a/desktop/createDownloadQueue.ts +++ /dev/null @@ -1,116 +0,0 @@ -import type {BrowserWindow} from 'electron'; -import {app} from 'electron'; -import * as path from 'path'; -import createQueue from '@libs/Queue/Queue'; -import CONST from '@src/CONST'; -import ELECTRON_EVENTS from './ELECTRON_EVENTS'; -import type Options from './electronDownloadManagerType'; - -type DownloadItem = { - // The window where the download will be initiated - win: BrowserWindow; - - // The URL of the file to be downloaded - url: string; - - // The options for the download, such as save path, file name, etc. - options: Options; -}; - -/** - * Returns the filename with extension based on the given name and MIME type. - * @param name - The name of the file. - * @param mime - The MIME type of the file. - * @returns The filename with extension. - */ -const getFilenameFromMime = (name: string, mime: string): string => { - const extensions = mime.split('/').pop(); - return `${name}.${extensions}`; -}; - -const createDownloadQueue = () => { - const downloadItemProcessor = (item: DownloadItem): Promise => - new Promise((resolve, reject) => { - let downloadTimeout: NodeJS.Timeout; - let downloadListener: (event: Electron.Event, electronDownloadItem: Electron.DownloadItem) => void; - - const timeoutFunction = () => { - item.win.webContents.session.removeListener('will-download', downloadListener); - resolve(); - }; - - const listenerFunction = (event: Electron.Event, electronDownloadItem: Electron.DownloadItem) => { - clearTimeout(downloadTimeout); - - const options = item.options; - const cleanup = () => item.win.webContents.session.removeListener('will-download', listenerFunction); - const errorMessage = `The download of ${electronDownloadItem.getFilename()} was interrupted`; - - if (options.directory && !path.isAbsolute(options.directory)) { - throw new Error('The `directory` option must be an absolute path'); - } - - const directory = options.directory ?? app.getPath('downloads'); - - let filePath: string; - if (options.filename) { - filePath = path.join(directory, options.filename); - } else { - const filename = electronDownloadItem.getFilename(); - const name = path.extname(filename) ? filename : getFilenameFromMime(filename, electronDownloadItem.getMimeType()); - - filePath = options.overwrite ? path.join(directory, name) : path.join(directory, name); - } - - if (options.saveAs) { - electronDownloadItem.setSaveDialogOptions({defaultPath: filePath, ...options.dialogOptions}); - } else { - electronDownloadItem.setSavePath(filePath); - } - - electronDownloadItem.on('updated', (_, state) => { - if (state !== 'interrupted') { - return; - } - - item.win.webContents.send(ELECTRON_EVENTS.DOWNLOAD_CANCELED, {url: item.url}); - cleanup(); - reject(new Error(errorMessage)); - electronDownloadItem.cancel(); - }); - - electronDownloadItem.on('done', (_, state) => { - cleanup(); - if (state === 'cancelled') { - item.win.webContents.send(ELECTRON_EVENTS.DOWNLOAD_CANCELED, {url: item.url}); - resolve(); - } else if (state === 'interrupted') { - item.win.webContents.send(ELECTRON_EVENTS.DOWNLOAD_FAILED, {url: item.url}); - reject(new Error(errorMessage)); - } else if (state === 'completed') { - if (process.platform === 'darwin') { - const savePath = electronDownloadItem.getSavePath(); - app.dock.downloadFinished(savePath); - } - item.win.webContents.send(ELECTRON_EVENTS.DOWNLOAD_COMPLETED, {url: item.url}); - resolve(); - } - }); - }; - - downloadTimeout = setTimeout(timeoutFunction, CONST.DOWNLOADS_TIMEOUT); - downloadListener = listenerFunction; - - item.win.webContents.downloadURL(item.url); - item.win.webContents.session.on('will-download', downloadListener); - }); - - const queue = createQueue(downloadItemProcessor); - - const enqueueDownloadItem = (item: DownloadItem): void => { - queue.enqueue(item); - }; - return {enqueueDownloadItem, dequeueDownloadItem: queue.dequeue}; -}; - -export default createDownloadQueue; diff --git a/desktop/electronDownloadManagerType.ts b/desktop/electronDownloadManagerType.ts deleted file mode 100644 index 755efe173887..000000000000 --- a/desktop/electronDownloadManagerType.ts +++ /dev/null @@ -1,49 +0,0 @@ -import type {SaveDialogOptions} from 'electron'; - -type Options = { - /** - Show a `Save As…` dialog instead of downloading immediately. - - Note: Only use this option when strictly necessary. Downloading directly without a prompt is a much better user experience. - - @default false - */ - readonly saveAs?: boolean; - - /** - The directory to save the file in. - - Must be an absolute path. - - Default: [User's downloads directory](https://electronjs.org/docs/api/app/#appgetpathname) - */ - readonly directory?: string; - - /** - Name of the saved file. - This option only makes sense for `electronDownloadManager.download()`. - - Default: [`downloadItem.getFilename()`](https://electronjs.org/docs/api/download-item/#downloaditemgetfilename) - */ - readonly filename?: string; - - /** - Allow downloaded files to overwrite files with the same name in the directory they are saved to. - - The default behavior is to append a number to the filename. - - @default false - */ - readonly overwrite?: boolean; - - /** - Customize the save dialog. - - If `defaultPath` is not explicity defined, a default value is assigned based on the file path. - - @default {} - */ - readonly dialogOptions?: SaveDialogOptions; -}; - -export default Options; diff --git a/desktop/main.ts b/desktop/main.ts index 0f4774d3b73b..b40557464ec1 100644 --- a/desktop/main.ts +++ b/desktop/main.ts @@ -15,8 +15,6 @@ import type PlatformSpecificUpdater from '@src/setup/platformSetup/types'; import type {Locale} from '@src/types/onyx'; import ELECTRON_EVENTS from './ELECTRON_EVENTS'; -const createDownloadQueue = require('./createDownloadQueue').default; - const port = process.env.PORT ?? 8082; const {DESKTOP_SHORTCUT_ACCELERATOR, LOCALES} = CONST; @@ -583,7 +581,7 @@ const mainWindow = (): Promise => { app.hide(); } - ipcMain.on(ELECTRON_EVENTS.LOCALE_UPDATED, (event, updatedLocale: Locale) => { + ipcMain.on(ELECTRON_EVENTS.LOCALE_UPDATED, (event, updatedLocale) => { Menu.setApplicationMenu(Menu.buildFromTemplate(localizeMenuItems(initialMenuTemplate, updatedLocale))); disposeContextMenu(); disposeContextMenu = createContextMenu(updatedLocale); @@ -603,7 +601,7 @@ const mainWindow = (): Promise => { // Listen to badge updater event emitted by the render process // and update the app badge count (MacOS only) - ipcMain.on(ELECTRON_EVENTS.REQUEST_UPDATE_BADGE_COUNT, (event, totalCount?: number) => { + ipcMain.on(ELECTRON_EVENTS.REQUEST_UPDATE_BADGE_COUNT, (event, totalCount) => { if (totalCount === -1) { // The electron docs say you should be able to update this and pass no parameters to set the badge // to a single red dot, but in practice it resulted in an error "TypeError: Insufficient number of @@ -615,15 +613,6 @@ const mainWindow = (): Promise => { } }); - const downloadQueue = createDownloadQueue(); - ipcMain.on(ELECTRON_EVENTS.DOWNLOAD, (event, downloadData) => { - const downloadItem = { - ...downloadData, - win: browserWindow, - }; - downloadQueue.enqueueDownloadItem(downloadItem); - }); - // Automatically check for and install the latest version in the background ipcMain.on(ELECTRON_EVENTS.SILENT_UPDATE, () => { if (isSilentUpdating) { diff --git a/docs/articles/expensify-classic/expenses/Referral-Program.md b/docs/articles/expensify-classic/expenses/Referral-Program.md new file mode 100644 index 000000000000..24605dd17d3f --- /dev/null +++ b/docs/articles/expensify-classic/expenses/Referral-Program.md @@ -0,0 +1,49 @@ +--- +title: Earn money with Expensify referrals +description: Get paid with the Expensify referral program! Share your link, earn $250 per successful sign-up, and enjoy unlimited income potential. It’s that easy. +redirect_from: articles/other/Referral-Program/ +--- + + +# Earn money with Expensify referrals + +Picture this: You've found Expensify and it's transformed your approach to expense management and financial organization. You love it so much that you can't help but recommend it to friends, family, and colleagues. Wouldn’t it be nice if you could get rewarded just for spreading the word? + +With Expensify referrals, you can. Every time someone you invite to the platform signs up for a paid annual plan on Expensify, you’ll earn $250. Think of it as a thank-you gift from us to you! + +## How to get paid for Expensify referrals + +Here are a few easy ways to get paid for Expensify friend referrals: + +- Submit an expense report to your boss (even just one receipt!) +- Send an invoice to a client or customer +- Share your referral link with a friend + - To find your referral link, open your Expensify mobile app and go to **Settings > Refer a friend, earn cash! > Share invite link**. + +**If the person you referred commits to an annual subscription with two or more active users and makes two monthly payments, you’ll get $250. Cha-ching!** + +## Who can you refer? + +You can refer anyone who might benefit from Expensify. Seriously. Anybody. + +Know a small business owner? Refer them! An [accountant](https://use.expensify.com/accountants-program)? Refer them! A best friend from childhood who keeps losing paper receipts? Refer them! + +Plus, you can [refer an unlimited amount of new users](https://use.expensify.com/blog/earn-50000-by-referring-your-friends-to-expensify/) with the Expensify referral program, so your earning potential is truly sky-high. + +## Common questions about Expensify benefits + +Still have questions about the Expensify referral program? We’ve got answers. Check out our FAQ below. + +### How will I know if I am the first person to refer someone to Expensify? + +You’ll know if you’re the first person to refer someone to Expensify if we reach out to let you know that they’ve successfully adopted Expensify and have paid for two months of an annual subscription. + +Simply put, we check for the earliest recorded referrer of a member on the workspace, and if that’s you, then we’ll let you know. + +### My referral wasn’t counted! How can I appeal? + +If you think your Expensify friend referral wasn’t counted, please send a message to concierge@expensify.com with the email of the person you referred. Our team will review the referral and get back to you. + +## Share the Expensify love — and get paid in the process + +Who needs a side hustle when you have Expensify? With Expensify benefits, it’s not just about managing your expenses — it's about expanding your income too. Share your Expensify referral link now or send over an invoice to unlock unlimited earning potential. diff --git a/docs/articles/expensify-classic/expensify-card/Change-Expensify-Card-limit.md b/docs/articles/expensify-classic/expensify-card/Change-Expensify-Card-limit.md deleted file mode 100644 index 81ce761f84f4..000000000000 --- a/docs/articles/expensify-classic/expensify-card/Change-Expensify-Card-limit.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Change Expensify Card limit -description: Increase or decrease the limit for an Expensify Card or for a group ---- -
- -You can set Expensify Card limits for each group in your organization, or you can set the limit per card. - -# Set a limit per card - -1. Hover over Settings, then click **Domains**. -2. Click the name of the domain. -3. Next to the card, click **Edit Limit**. -4. Ensure the Custom Smart Limit toggle is enabled to be able to set a specific card limit. Otherwise, the card limit will be determined by the limit set for the group that the employee is in. -5. In the Limit Amount field, enter the desired limit. If set to $0, the card will be disabled for use until the limit is increased. -6. Click **Save**. - -# Set a limit per group - -1. Hover over Settings, then click **Domains**. -2. Click the name of the domain. -3. Click the **Groups** tab on the left. -4. Click the Expensify Card Smart Limit field for the card and enter the desired limit. - -
diff --git a/docs/articles/expensify-classic/expensify-card/Deactivate-or-cancel-an-Expensify-Card.md b/docs/articles/expensify-classic/expensify-card/Deactivate-or-cancel-an-Expensify-Card.md deleted file mode 100644 index d7fa33221834..000000000000 --- a/docs/articles/expensify-classic/expensify-card/Deactivate-or-cancel-an-Expensify-Card.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Deactivate or cancel an Expensify Card -description: Close an Expensify Card ---- -
- -A cardholder or a Domain Admin can cancel an Expensify Card. You may want to cancel a card: -- To cancel an old Expensify Card after upgrading to the new Expensify Visa® Commercial Card -- After a fraudulent or suspicious charge -- After an employee leaves the company - -# Domain Admins - -To cancel an employee's Expensify Card as a Domain Admin, - -1. Hover over Settings, then click **Domains**. -2. Click the name of the domain. -3. Next to the card, click **Terminate**. - -# Cardholders - -To cancel an Expensify Card assigned to you, - -1. Hover over Settings, then click **Account**. -2. Click the **Credit Card Import** tab. -3. Click **Cancel** next to the card. - -
diff --git a/docs/articles/expensify-classic/integrations/accounting-integrations/NetSuite.md b/docs/articles/expensify-classic/integrations/accounting-integrations/NetSuite.md index ee116f65a398..3ce0d07cb65d 100644 --- a/docs/articles/expensify-classic/integrations/accounting-integrations/NetSuite.md +++ b/docs/articles/expensify-classic/integrations/accounting-integrations/NetSuite.md @@ -276,11 +276,9 @@ To add a Custom Segment to your workspace, you’ll need to locate three fields **To find the Script/Field ID:** -Note that as of 2019.1, any new custom segments that you create automatically use the unified ID, and the Use as Field ID box is not visible. If you are editing a custom segment definition that was created before 2019.1, the Use as Field ID box is available. -To use a unified ID for the entire custom segment definition, check the Use as Field ID box. When the box is checked, no field ID fields or columns are shown on the Application & Sourcing subtabs because one ID is used for all fields. +If configuring Custom Segments as Report Fields, use the Field ID on the Transactions tab (under _Custom Segments > Transactions_). -- If configuring Custom Segments as Report Fields, use the Field ID on the Transactions tab (under _Custom Segments > Transactions_), or if no Field ID is shown, use the unified ID (just called "ID" right below the "Label"). -- If configuring Custom Segments as Tags, use the Field ID on the Transaction Columns tab (under _Custom Segments > Transaction Columns_), or if no Field ID is shown, use the unified ID (just called "ID" right below the "Label"). +If configuring Custom Segments as Tags, use the Field ID on the Transaction Columns tab (under _Custom Segments > Transaction Columns_). Lastly, head over to Expensify and do the following: 1. Navigate to **Settings > Workspace > Group > _[Workspace Name]_ > Connections > Configure > Coding tab** diff --git a/docs/articles/new-expensify/connections/Coming-Soon.md b/docs/articles/new-expensify/connections/Coming-Soon.md new file mode 100644 index 000000000000..4d32487a14b5 --- /dev/null +++ b/docs/articles/new-expensify/connections/Coming-Soon.md @@ -0,0 +1,6 @@ +--- +title: Coming soon +description: Coming soon +--- + +# Coming soon \ No newline at end of file diff --git a/docs/articles/new-expensify/connections/Set-up-Xero-connection.md b/docs/articles/new-expensify/connections/Set-up-Xero-connection.md deleted file mode 100644 index 73bff6ad5862..000000000000 --- a/docs/articles/new-expensify/connections/Set-up-Xero-connection.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: Set up Xero connection -description: Integrate Xero with Expensify ---- -
- -{% include info.html %} -To use the Xero connection, you must have a Xero account and an Expensify Collect plan. -{% include end-info.html %} - -To set up your Xero connection, complete the 4 steps below. - -# Step 1: Connect Expensify to Xero - -
    -
  1. Click your profile image or icon in the bottom left menu.
  2. -
  3. Scroll down and click Workspaces in the left menu.
  4. -
  5. Select the workspace you want to connect to Xero.
  6. -
  7. Click More features in the left menu.
  8. -
  9. Scroll down to the Integrate section and enable the Accounting toggle.
  10. -
  11. Click Accounting in the left menu.
  12. -
  13. Click Set up to the right of Xero.
  14. -
  15. Enter your Xero login details to import your settings from Xero to Expensify.
  16. -
- -# Step 2: Configure import settings - -The following steps help you determine how data will be imported from Xero to Expensify. - -
    -
  1. Under the Accounting settings for your workspace, click Import under the Xero connection.
  2. -
  3. Select an option for each of the following settings to determine what information will be imported from Xero into Expensify:
  4. -
      -
    • Xero organization: Select which Xero organization your Expensify workspace is connected to. Each organization can only be connected to one workspace at a time.
    • -
    • Chart of Accounts: Your Xero chart of accounts and any accounts marked as “Show In Expense Claims” will be automatically imported into Expensify as Categories. This cannot be amended.
    • -
    • Tracking Categories: Choose whether to import your Xero categories for cost centers and regions as tags in Expensify.
    • -
    • Re-bill Customers: When enabled, Xero customer contacts are imported into Expensify as tags for expense tracking. After exporting to Xero, tagged billable expenses can be included on a sales invoice to your customer.
    • -
    • Taxes: Choose whether to import tax rates and tax defaults from Xero.
    • -
    -
- -# Step 3: Configure export settings -The following steps help you determine how data will be exported from Expensify to Xero. - -
    -
  1. Under the Accounting settings for your workspace, click Export under the Xero connection.
  2. -
  3. Review each of the following export settings:
  4. -
      -
    • Preferred Exporter: Choose whether to assign a Workspace Admin as the Preferred Exporter. Once selected, the Preferred Exporter automatically receives reports for export in their account to help automate the exporting process.
    • -
    -
-{% include info.html %} -- Other Workspace Admins will still be able to export to Xero. -- If you set different export accounts for individual company cards under your domain settings, then your Preferred Exporter must be a Domain Admin. -{% include end-info.html %} - -
    -
      -
    • Export Out-of-Pocket Expenses as: All out-of-pocket expenses will be exported as purchase bills. This cannot be amended.
    • -
    • Purchase Bill Date: Choose whether to use the date of last expense, export date, or submitted date.
    • -
    • Export invoices as: All invoices exported to Xero will be as a sales invoice. This cannot be amended.
    • -
    • Export company card expenses as: All company card expenses export to Xero as bank transactions. This cannot be amended.
    • -
    • Xero Bank Account: Select which bank account will be used to post bank transactions when non-reimbursable expenses are exported.
    • -
    -
- -# Step 4: Configure advanced settings - -The following steps help you determine the advanced settings for your connection, like auto-sync. - -
    -
  1. Under the Accounting settings for your workspace, click Advanced under the Xero connection.
  2. -
  3. Select an option for each of the following settings:
  4. -
      -
    • Auto-sync: Choose whether to enable Xero to automatically communicate changes with Expensify to ensure that the data shared between the two systems is up-to-date. New report approvals/reimbursements will be synced during the next auto-sync period. Once you’ve added a business bank account for ACH reimbursement, any reimbursable expenses will be sent to Xero automatically when the report is reimbursed. For non-reimbursable reports, Expensify automatically queues the report to export to Xero after it has completed the approval workflow in Expensify.
    • -
    • Set Purchase Bill Status: Choose the status of your purchase bills:
    • -
        -
      • Draft
      • -
      • Awaiting Approval
      • -
      • Awaiting Payment
      • -
      -
    • Sync Reimbursed Reports: Choose whether to enable report syncing for reimbursed expenses. If enabled, all reports that are marked as Paid in Xero will also show in Expensify as Paid. If enabled, you must also select the Xero account that reimbursements are coming out of, and Expensify will automatically create the payment in Xero.
    • -
    • Xero Bill Payment Account: If you enable Sync Reimbursed Reports, you must select the Xero Bill Payment account your reimbursements will come from.
    • -
    • Xero Invoice Collections Account: If you are exporting invoices from Expensify, select the invoice collection account that you want invoices to appear under once they are marked as paid.
    • -
    -
- -{% include faq-begin.md %} - -**How do I disconnect Xero from Expensify?** - -1. Click your profile image or icon in the bottom left menu. -2. Scroll down and click **Workspaces** in the left menu. -3. Select the workspace you want to disconnect from Xero. -4. Click **Accounting** in the left menu. -5. Click the three dot menu icon to the right of Xero and select **Disconnect**. -6. Click **Disconnect** to confirm. - -You will no longer see the imported options from Xero. -{% include faq-end.md %} - -
diff --git a/docs/articles/new-expensify/expenses/Approve-and-pay-expenses.md b/docs/articles/new-expensify/expenses/Approve-and-pay-expenses.md deleted file mode 100644 index 0cf642c76e4c..000000000000 --- a/docs/articles/new-expensify/expenses/Approve-and-pay-expenses.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Approve and Pay Expenses -description: Approve, hold, or pay expenses submitted to you ---- -
- -When expenses are sent to you for approval, you have the option to: -- Approve and pay the expenses. -- Hold the expenses if payment needs to be delayed or if the expenses require additional information before they can be approved. - -{% include info.html %} -If your workspace does not require expense approvals, or if the expense is sent to you by a friend, you will not need to approve the expense and instead can immediately pay the expense when you are ready. -{% include end-info.html %} - -# Approve expenses - -When someone sends an expense or a group of expenses to you for approval, you’ll receive the expense in Expensify Chat for the related workspace. Chats with new updates appear with a green dot to the right of the chat message. Concierge also sends you an email notification for the new expense. - -To approve an expense, - -1. Open the Expensify Chat thread for the expense. -2. Click the expense or group of expenses. -3. Review the expense details to ensure they are correct. Look at each receipt, the amount, the description, and any additional details. -4. Determine the next steps. - - **Approve**: When you’re satisfied with the expense, click **Approve**. - - **Handle holds**: If any of the expenses are on hold, you can choose to either approve only the expenses that are not on hold or approve the full amount, including any held expenses. - - **Request changes**: You can add a comment to the expense’s chat thread in your Expensify Chat inbox to request changes to the expense details. - -{% include info.html %} -Admins can modify an expense, if needed. -{% include end-info.html %} - -You’re now ready to pay the expense. - -# Hold an expense - -If you need to delay a payment or if you need more information on the expense before it can be approved, you can hold the expense. - -To hold an expense, - -1. Open the Expensify Chat thread for the expense. -2. Click the expense or group of expenses. -3. Click the three dot menu at the top right of the expense and select **Hold**. -4. Enter a reason for the delay. -5. Review the Hold Overview page and click **Got It**. - -When you’re ready, you can choose to: -- **Remove the hold**: Complete the steps above and select **Unhold**. -- **Approve the expense**: Complete the steps above for “Approve expenses.” -Once the expense has been approved, you can now pay the expense. - -{% include info.html %} -Held expenses will not be available for payment until they have been approved. -{% include end-info.html %} - -# Pay expenses - -Once you’ve approved an expense—or if the expense does not require approval—you’ll be able to pay it. - -{% include info.html %} -To pay expenses within Expensify, you’ll need to set up your Expensify Wallet. -{% include end-info.html %} - -To pay an expense, - -1. Open the Expensify Chat thread for the expense. -2. Click the expense or group of expenses. -3. Select a payment option. - - Click **Pay** to pay the full expense within Expensify. If the expenses contain one that has been held, the pay amount will only include the expenses that have not been held. Then you’ll select your payment method. - - Click **Pay Elsewhere** to indicate that a payment has been sent using a method outside of Expensify, such as cash or a check. This will label the expense as Paid. - -
diff --git a/docs/articles/new-expensify/expensify-card/Check-Expensify-Card-limit.md b/docs/articles/new-expensify/expensify-card/Check-Expensify-Card-limit.md deleted file mode 100644 index 803211c873ec..000000000000 --- a/docs/articles/new-expensify/expensify-card/Check-Expensify-Card-limit.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Check Expensify Card limit -description: View the available limit for your Expensify Card ---- -
- -Your Expensify Visa® Commercial Card has a Smart Limit that is automatically updated after you make a purchase with your physical or virtual card. Your base limit is assigned by your admin. - -To check your Smart Limit, - -{% include selector.html values="desktop, mobile" %} - -{% include option.html value="desktop" %} -1. Click your profile image or icon in the bottom left menu. -2. Click **Wallet** in the left menu. -3. Click your Expensify Card to see the available Smart Limit. -{% include end-option.html %} - -{% include option.html value="mobile" %} -1. Tap your profile image or icon in the bottom menu. -2. Tap **Wallet**. -3. Tap your Expensify Card to see the available Smart Limit. -{% include end-option.html %} - -{% include end-selector.html %} - -
diff --git a/docs/articles/new-expensify/expensify-card/Coming-Soon.md b/docs/articles/new-expensify/expensify-card/Coming-Soon.md new file mode 100644 index 000000000000..6b85bb0364b5 --- /dev/null +++ b/docs/articles/new-expensify/expensify-card/Coming-Soon.md @@ -0,0 +1,4 @@ +--- +title: Coming Soon +description: Coming Soon +--- diff --git a/docs/articles/new-expensify/expensify-card/Dispute-Expensify-Card-transaction.md b/docs/articles/new-expensify/expensify-card/Dispute-Expensify-Card-transaction.md deleted file mode 100644 index 5bd23cd53730..000000000000 --- a/docs/articles/new-expensify/expensify-card/Dispute-Expensify-Card-transaction.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Dispute Expensify Card transaction -description: Dispute an unrecognized, unauthorized, or fraudulent charge ---- -
- -When using your Expensify Visa® Commercial Card, you may come across transactions that you want to dispute, including: - -- Unrecognized, unauthorized, or fraudulent charges - - Charges made with your card after it was lost or stolen - - Unauthorized charges while your card is still in your possession - - Continued charges for a canceled recurring subscription -- Service disputes - - Damaged or defective merchandise - - Charges for merchandise that was never received - - Duplicate charges for a single transaction - - Transactions of an incorrect amount - - Refund not received after a return - -# Dispute a transaction - -If you spot a transaction error on your Expensify Card, - -1. Contact the merchant. They can often address the issue promptly. -2. If you are unable to resolve the issue with the merchant, contact us immediately by opening your chat with Expensify Concierge in your Expensify Chat inbox, or by emailing concierge@expensify.com to start the dispute process. Provide the following information: - - Details about the disputed charge, including why you’re disputing it, what occurred, and any steps you’ve taken to address the issue - - Supporting documentation like receipts or cancellation confirmations -3. If you suspect fraud on your Expensify Card, immediately deactivate your card: - -{% include selector.html values="desktop, mobile" %} - -{% include option.html value="desktop" %} -
    -
  1. Click your profile image or icon in the bottom left menu.
  2. -
  3. Click Wallet in the left menu.
  4. -
  5. Click your Expensify Card.
  6. -
  7. Click Report card fraud.
  8. -
  9. Follow the prompts to deactivate your card and request a new one.
  10. -
-{% include end-option.html %} - -{% include option.html value="mobile" %} -
    -
  1. Tap your profile image or icon in the bottom menu.
  2. -
  3. Tap Wallet.
  4. -
  5. Tap your Expensify Card.
  6. -
  7. Tap Report card fraud.
  8. -
  9. Follow the prompts to deactivate your card and request a new one.
  10. -
-{% include end-option.html %} - -{% include end-selector.html %} - -{:start="4"} -4. [Enable Two-Factor Authentication (2FA)](https://help.expensify.com/articles/new-expensify/settings/Enable-Two-Factor-Authentication) to add an additional layer of security to your account. - -{% include faq-begin.md %} - -**How am I protected from fraud using the Expensify Card?** - -Expensify leverages sophisticated algorithms to detect and/or block unusual card activity. You can also enable real-time notifications to receive alerts each time your card is charged. - -**How long does the dispute process take?** - -The dispute process can take up to 90 days. - -**Can I cancel a dispute?** - -You can cancel a filed dispute by using your Expensify Chat thread with Concierge or by emailing concierge@expensify.com. - -{% include faq-end.md %} - -
diff --git a/docs/articles/new-expensify/expensify-card/Update-your-Expensify-Card-mailing-address.md b/docs/articles/new-expensify/expensify-card/Update-your-Expensify-Card-mailing-address.md deleted file mode 100644 index 6ce53b6a359a..000000000000 --- a/docs/articles/new-expensify/expensify-card/Update-your-Expensify-Card-mailing-address.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Update your Expensify Card mailing address -description: Change your mailing address for your Expensify Card ---- -
- -1. Hover over Settings, then click **Account**. -2. Click the **Credit Card Import** tab. -3. Click **Request a New Card** on your physical card pending activation. -4. Select **I lost my card**. - -{% include info.html %} -If you’re updating your address to receive your new Expensify Visa® Commercial Card, you’ll still select **I lost my card** even though you have not lost a card. -{% include end-info.html %} - -{:start="5"} -5. Confirm your details and click **Continue**. -6. Update your address and click **Continue**. - -{% include info.html %} -If you’re updating your address to receive your new Expensify Visa® Commercial Card, you can click the X in the right corner to end the process here if the new card has not been shipped out to you yet. However, if the new card has already been shipped out to an incorrect address, proceed to the next step to resend the card to the newly updated address. -{% include end-info.html %} - -{:start="7"} -7. Proceed with the card replacement. - -Your new card will arrive in 2-3 business days. - -
diff --git a/docs/articles/new-expensify/expensify-card/Use-your-Expensify-Card.md b/docs/articles/new-expensify/expensify-card/Use-your-Expensify-Card.md deleted file mode 100644 index 6c7457641ce6..000000000000 --- a/docs/articles/new-expensify/expensify-card/Use-your-Expensify-Card.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Use your Expensify Card -description: Use your physical or virtual Expensify Card ---- -
- -As soon as you receive your physical Expensify Visa® Commercial Card, you can start using it right away by swiping it like you would with any other card, or you can link your card to your Apple or Google Pay mobile wallet to make in-person, contactless payments. You can also use your virtual Expensify Card for online and in-app purchases. - -A virtual card is a digital card that can be used for online transactions. Virtual cards have the same details as physical cards, but they offer several additional benefits: -- **Flexibility**: Virtual cards can be created or deleted instantly. You can use them for individual transactions with predetermined amounts or recurring payments and subscriptions. -- **Customizable limits**: You can set spending limits for each virtual card. -- **Security**: Admins have the option to issue virtual cards for a single-use (e.g. for one of expenses) or fixed-use (e.g. for recurring expenses). Since you have placed a limit on their usage, it makes them less susceptible to unauthorized transactions. -- **Insights**: You can easily track recurring spend for specific vendors when assigning a virtual card to a team, department, or vendor. - -# View your virtual card details - -{% include selector.html values="desktop, mobile" %} - -{% include option.html value="desktop" %} -1. Click your profile image or icon in the bottom left menu. -2. Click **Wallet** in the left menu. -3. Click your Expensify Card. -4. Click **Reveal Details** to view your virtual Expensify Card number, expiration date, CVV, and address. -{% include end-option.html %} - -{% include option.html value="mobile" %} -1. Tap your profile image or icon in the bottom menu. -2. Tap **Wallet**. -3. Tap your Expensify Card. -4. Tap **Reveal Details** to view your virtual Expensify Card number, expiration date, CVV, and address. -{% include end-option.html %} - -{% include end-selector.html %} - -{% include faq-begin.md %} - -**Why did my transaction get declined?** - -Here are some reasons why an Expensify Card transaction might be declined: - -- **Insufficient card limit**: If a transaction exceeds your Expensify Card’s available limit, the transaction will be declined. Submitting expenses and getting them approved will free up your limit for more spending. -- **Inactive card**: Your card isn’t active yet or it was disabled by your Domain Admin -- **Incorrect card details**: Your card information was entered incorrectly with the merchant. Entering incorrect card information, such as the CVC, ZIP, or expiration date, will also lead to declines. There was suspicious activity -- **Fraudulent or risky activity**: If Expensify detects unusual or suspicious activity, we may block transactions as a security measure. This could happen due to irregular spending patterns, attempted purchases from risky vendors, or multiple rapid transactions. Check your Expensify Home page to approve unusual merchants and try again. If the spending looks suspicious, we may complete a manual due diligence check, and our team will do this as quickly as possible - your cards will all be locked while this happens. The merchant is located in a restricted country - -**How do I report my Expensify Card expenses?** - -You can report and submit Expensify Card expenses just like any other expenses, and you’ll want to submit them regularly to ensure you have a sufficient spending amount available on the card. As your expenses are approved, your Smart Limit updates accordingly. - -{% include info.html %} -SmartScanned receipts should automatically attach to the related Expensify Card expense. Expensify also automatically generates an IRS-compliant eReceipt for every transaction as long as the expense isn’t lodging-related. If your organization doesn’t require itemized receipts, you can rely on eReceipts instead. -{% include end-info.html %} - -{% include faq-end.md %} - -
diff --git a/docs/articles/new-expensify/workspaces/Coming-Soon.md b/docs/articles/new-expensify/workspaces/Coming-Soon.md new file mode 100644 index 000000000000..266784414761 --- /dev/null +++ b/docs/articles/new-expensify/workspaces/Coming-Soon.md @@ -0,0 +1,6 @@ +--- +title: Coming Soon! +description: More info coming soon! +--- + + diff --git a/docs/articles/new-expensify/workspaces/Require-tags-and-categories-for-expenses.md b/docs/articles/new-expensify/workspaces/Require-tags-and-categories-for-expenses.md index 8f2cf0897ad0..294dcfc57a23 100644 --- a/docs/articles/new-expensify/workspaces/Require-tags-and-categories-for-expenses.md +++ b/docs/articles/new-expensify/workspaces/Require-tags-and-categories-for-expenses.md @@ -14,7 +14,7 @@ To require workspace members to add tags and/or categories to their expenses, 3. Select a workspace. 4. Click **Tags** or **Categories** in the left menu. 5. Click **Settings** at the top right of the page. -6. Enable the “Members must tag/categorize all expenses" toggle. +6. Enable the “Members must tag/categorize all spend” toggle. 7. If desired, repeat steps 4-6 for tags or categories (whichever you haven’t done yet). {% include end-option.html %} @@ -24,7 +24,7 @@ To require workspace members to add tags and/or categories to their expenses, 3. Select a workspace. 4. Tap **Tags** or **Categories**. 5. Tap **Settings** at the top right of the page. -6. Enable the “Members must tag/categorize all expenses" toggle. +6. Enable the “Members must tag/categorize all spend” toggle. 7. If desired, repeat steps 4-6 for tags or categories (whichever you haven’t done yet). {% include end-option.html %} diff --git a/docs/assets/images/AdminissuedVirtualCards.png b/docs/assets/images/AdminissuedVirtualCards.png index 9c44763f584065c46b2a39b521bf802b996d07ad..88df9b2f3fecef011db3e71c7eb12c02847cc97b 100644 GIT binary patch literal 157289 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 z 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 z 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 diff --git a/docs/assets/images/domains.svg b/docs/assets/images/domains.svg index 12c0a0a0792b..3a3c95604b79 100644 --- a/docs/assets/images/domains.svg +++ b/docs/assets/images/domains.svg @@ -1 +1,44 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/images/plane.svg b/docs/assets/images/plane.svg index bd7fceba3607..0295aa3c66c0 100644 --- a/docs/assets/images/plane.svg +++ b/docs/assets/images/plane.svg @@ -1 +1,34 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/redirects.csv b/docs/redirects.csv index 3042dc79085c..74fa9c697f5f 100644 --- a/docs/redirects.csv +++ b/docs/redirects.csv @@ -26,31 +26,10 @@ https://community.expensify.com/discussion/5190/how-to-individually-assign-a-vac https://community.expensify.com/discussion/5274/how-to-set-up-an-adp-indirect-integration-with-expensify,https://help.expensify.com/articles/expensify-classic/integrations/HR-integrations/ADP https://community.expensify.com/discussion/5776/how-to-create-mileage-expenses-in-expensify,https://help.expensify.com/articles/expensify-classic/expenses/Distance-Tracking https://community.expensify.com/discussion/7385/how-to-enable-two-factor-authentication-in-your-account,https://help.expensify.com/expensify-classic/hubs/settings/account-settings +https://community.expensify.com/discussion/5124/how-to-add-your-name-and-photo-to-your-account,https://help.expensify.com/expensify-classic/hubs/settings/account-settings https://community.expensify.com/discussion/5149/how-to-manage-your-devices-in-expensify,https://help.expensify.com/expensify-classic/hubs/settings/account-settings https://community.expensify.com/discussion/4432/how-to-add-a-secondary-login,https://help.expensify.com/expensify-classic/hubs/settings/account-settings https://community.expensify.com/discussion/6794/how-to-change-your-email-in-expensify,https://help.expensify.com/expensify-classic/hubs/settings/account-settings -https://community.expensify.com/discussion/3498/how-do-i-invite-users-in-my-company,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/6015/tutorial,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/2596/setting-up-accounts,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/7665/how-do-i-add-another-person-to-my-account-to-keep-track-of-there-expenses,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/7456/how-do-i-submit-an-expense-for-reimbursement,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/1460/schedule-a-demo,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/835/what-is-the-difference-between-a-category-and-a-tag,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/7703/getting-started-video,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/1845/how-to-set-up-account-and-add-users,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/8629/employee-training-e-learning-program,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/1607/on-demand-webinars,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/5444/admin-onboarding-webinar-faqs,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/5417/employee-training-webinar-faqs,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/5885/overview-the-employee-training-webinar,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/5854/overview-the-expensify-admin-onboarding-webinar,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/4699/how-to-download-the-mobile-app,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/4524/how-to-set-up-the-uber-integration,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/5212/how-to-connect-your-policy-to-netsuite-token-based-authentication,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/5124/how-to-add-your-name-and-photo-to-your-account,https://help.expensify.com/articles/expensify-classic/settings/account-settings/Add-profile-photo -https://community.expensify.com/discussion/5922/deep-dive-day-1-with-expensify-for-submitters,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/5934/day-1-with-expensify-admins-and-accountants,https://help.expensify.com/expensify-classic/hubs/getting-started -https://community.expensify.com/discussion/5694/deep-dive-admin-training-and-setup-resources,https://help.expensify.com/expensify-classic/hubs/getting-started https://help.expensify.com/articles/expensify-classic/expensify-card/Expensify-Card-Perks.html,https://use.expensify.com/company-credit-card https://help.expensify.com/articles/expensify-classic/expensify-partner-program/How-to-Join-the-ExpensifyApproved!-Partner-Program.html,https://use.expensify.com/accountants-program https://help.expensify.com/articles/expensify-classic/getting-started/approved-accountants/Card-Revenue-Share-For-Expensify-Approved-Partners, https://use.expensify.com/blog/maximizing-rewards-expensifyapproved-accounting-partners-now-earn-0-5-revenue-share @@ -193,9 +172,4 @@ https://help.expensify.com/articles/new-expensify/getting-started/Free-plan-upgr https://help.expensify.com/articles/new-expensify/bank-accounts-and-payments/Connect-a-Bank-Account,https://help.expensify.com/new-expensify/hubs/expenses/Connect-a-Bank-Account https://help.expensify.com/articles/new-expensify/settings/Profile,https://help.expensify.com/new-expensify/hubs/settings/ https://help.expensify.com/articles/new-expensify/expenses/Referral-Program.html,https://help.expensify.com/articles/expensify-classic/expensify-partner-program/Referral-Program -https://help.expensify.com/articles/new-expensify/workspaces/The-Free-Plan,https://help.expensify.com/new-expensify/hubs/workspaces/ -https://help.expensify.com/new-expensify/hubs/expenses/Connect-a-Bank-Account,https://help.expensify.com/articles/new-expensify/expenses/Connect-a-Business-Bank-Account -https://help.expensify.com/articles/new-expensify/settings/Security,https://help.expensify.com/articles/new-expensify/settings/Encryption-and-Data-Security https://help.expensify.com/articles/expensify-classic/workspaces/reports/Currency,https://help.expensify.com/articles/expensify-classic/workspaces/Currency -https://help.expensify.com/articles/new-expensify/chat/Expensify-Chat-For-Admins,https://help.expensify.com/new-expensify/hubs/chat/ -https://help.expensify.com/articles/new-expensify/bank-accounts-and-payments/Connect-a-Bank-Account.html,https://help.expensify.com/articles/new-expensify/expenses/Connect-a-Business-Bank-Account diff --git a/ios/NewExpensify.xcodeproj/project.pbxproj b/ios/NewExpensify.xcodeproj/project.pbxproj index f86952ca7aca..94118eb3bfa4 100644 --- a/ios/NewExpensify.xcodeproj/project.pbxproj +++ b/ios/NewExpensify.xcodeproj/project.pbxproj @@ -648,7 +648,6 @@ "${PODS_ROOT}/Target Support Files/Pods-NewExpensify/Pods-NewExpensify-frameworks.sh", "${BUILT_PRODUCTS_DIR}/MapboxMaps/MapboxMaps.framework", "${BUILT_PRODUCTS_DIR}/Turf/Turf.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/FullStory/FullStory.framework/FullStory", "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCommon/MapboxCommon.framework/MapboxCommon", "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCoreMaps/MapboxCoreMaps.framework/MapboxCoreMaps", "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxMobileEvents/MapboxMobileEvents.framework/MapboxMobileEvents", @@ -660,7 +659,6 @@ outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMaps.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Turf.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FullStory.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCommon.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCoreMaps.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMobileEvents.framework", @@ -682,7 +680,6 @@ "${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-frameworks.sh", "${BUILT_PRODUCTS_DIR}/MapboxMaps/MapboxMaps.framework", "${BUILT_PRODUCTS_DIR}/Turf/Turf.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/FullStory/FullStory.framework/FullStory", "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCommon/MapboxCommon.framework/MapboxCommon", "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCoreMaps/MapboxCoreMaps.framework/MapboxCoreMaps", "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxMobileEvents/MapboxMobileEvents.framework/MapboxMobileEvents", @@ -694,7 +691,6 @@ outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMaps.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Turf.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FullStory.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCommon.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCoreMaps.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMobileEvents.framework", @@ -939,7 +935,7 @@ "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 368M544MTT; ENABLE_BITCODE = NO; INFOPLIST_FILE = "$(SRCROOT)/NewExpensify/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -978,7 +974,7 @@ DEVELOPMENT_TEAM = 368M544MTT; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 368M544MTT; INFOPLIST_FILE = NewExpensify/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1061,7 +1057,7 @@ INFOPLIST_FILE = NotificationServiceExtension/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = NotificationServiceExtension; INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1146,7 +1142,7 @@ INFOPLIST_FILE = NotificationServiceExtension/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = NotificationServiceExtension; INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1232,7 +1228,7 @@ INFOPLIST_FILE = NotificationServiceExtension/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = NotificationServiceExtension; INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1312,7 +1308,7 @@ INFOPLIST_FILE = NotificationServiceExtension/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = NotificationServiceExtension; INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1390,7 +1386,7 @@ INFOPLIST_FILE = NotificationServiceExtension/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = NotificationServiceExtension; INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1469,7 +1465,7 @@ INFOPLIST_FILE = NotificationServiceExtension/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = NotificationServiceExtension; INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1731,7 +1727,7 @@ "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 368M544MTT; ENABLE_BITCODE = NO; INFOPLIST_FILE = "$(SRCROOT)/NewExpensify/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1876,7 +1872,7 @@ "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 368M544MTT; ENABLE_BITCODE = NO; INFOPLIST_FILE = "$(SRCROOT)/NewExpensify/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -2014,7 +2010,7 @@ DEVELOPMENT_TEAM = 368M544MTT; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 368M544MTT; INFOPLIST_FILE = NewExpensify/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -2149,7 +2145,7 @@ DEVELOPMENT_TEAM = 368M544MTT; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 368M544MTT; INFOPLIST_FILE = NewExpensify/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist index 9602b864b1ac..b541de448b1d 100644 --- a/ios/NewExpensify/Info.plist +++ b/ios/NewExpensify/Info.plist @@ -19,7 +19,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.4.77 + 1.4.75 CFBundleSignature ???? CFBundleURLTypes @@ -40,7 +40,7 @@ CFBundleVersion - 1.4.77.3 + 1.4.75.0 FullStory OrgId diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist index c123880655b2..bb98f8d05f2d 100644 --- a/ios/NewExpensifyTests/Info.plist +++ b/ios/NewExpensifyTests/Info.plist @@ -15,10 +15,10 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.4.77 + 1.4.75 CFBundleSignature ???? CFBundleVersion - 1.4.77.3 + 1.4.75.0 diff --git a/ios/NotificationServiceExtension/Info.plist b/ios/NotificationServiceExtension/Info.plist index 6cc928676c80..f003f5b35948 100644 --- a/ios/NotificationServiceExtension/Info.plist +++ b/ios/NotificationServiceExtension/Info.plist @@ -11,9 +11,9 @@ CFBundleName $(PRODUCT_NAME) CFBundleShortVersionString - 1.4.77 + 1.4.75 CFBundleVersion - 1.4.77.3 + 1.4.75.0 NSExtension NSExtensionPointIdentifier diff --git a/ios/Podfile b/ios/Podfile index d72086d4c07b..4f00eb2adfdd 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -117,5 +117,3 @@ end target 'NotificationServiceExtension' do pod 'AirshipServiceExtension' end - -pod 'FullStory', :http => 'https://ios-releases.fullstory.com/fullstory-1.48.0-xcframework.tar.gz' \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 1ea6b65a58b7..d0155051fc3b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -138,27 +138,6 @@ PODS: - GoogleUtilities/Environment (~> 7.7) - "GoogleUtilities/NSData+zlib (~> 7.7)" - fmt (6.2.1) - - FullStory (1.48.0) - - fullstory_react-native (1.4.2): - - FullStory (~> 1.14) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Codegen - - React-Core - - React-debug - - React-Fabric - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - glog (0.3.5) - GoogleAppMeasurement (8.8.0): - GoogleAppMeasurement/AdIdSupport (= 8.8.0) @@ -1752,7 +1731,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNCPicker (2.7.6): + - RNCPicker (2.6.1): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1852,7 +1831,7 @@ PODS: - RNGoogleSignin (10.0.1): - GoogleSignIn (~> 7.0) - React-Core - - RNLiveMarkdown (0.1.70): + - RNLiveMarkdown (0.1.69): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1870,9 +1849,9 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNLiveMarkdown/common (= 0.1.70) + - RNLiveMarkdown/common (= 0.1.69) - Yoga - - RNLiveMarkdown/common (0.1.70): + - RNLiveMarkdown/common (0.1.69): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -2098,8 +2077,6 @@ DEPENDENCIES: - ExpoImageManipulator (from `../node_modules/expo-image-manipulator/ios`) - ExpoModulesCore (from `../node_modules/expo-modules-core`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - "FullStory (from `{:http=>\"https://ios-releases.fullstory.com/fullstory-1.48.0-xcframework.tar.gz\"}`)" - - "fullstory_react-native (from `../node_modules/@fullstory/react-native`)" - 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) @@ -2262,10 +2239,6 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-modules-core" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" - FullStory: - :http: https://ios-releases.fullstory.com/fullstory-1.48.0-xcframework.tar.gz - fullstory_react-native: - :path: "../node_modules/@fullstory/react-native" glog: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: @@ -2456,10 +2429,6 @@ EXTERNAL SOURCES: Yoga: :path: "../node_modules/react-native/ReactCommon/yoga" -CHECKOUT OPTIONS: - FullStory: - :http: https://ios-releases.fullstory.com/fullstory-1.48.0-xcframework.tar.gz - SPEC CHECKSUMS: Airship: 5a6d3f8a982398940b0d48423bb9b8736717c123 AirshipFrameworkProxy: 7255f4ed9836dc2920f2f1ea5657ced4cee8a35c @@ -2485,8 +2454,6 @@ SPEC CHECKSUMS: FirebasePerformance: 0c01a7a496657d7cea86d40c0b1725259d164c6c FirebaseRemoteConfig: 2d6e2cfdb49af79535c8af8a80a4a5009038ec2b fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 - FullStory: 097347c823c21c655ca25fd8d5e6355a9326ec54 - fullstory_react-native: 6cba8a2c054374a24a44dc4310407d9435459cae glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 GoogleAppMeasurement: 5ba1164e3c844ba84272555e916d0a6d3d977e91 GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a @@ -2578,7 +2545,7 @@ SPEC CHECKSUMS: ReactCommon: 840a955d37b7f3358554d819446bffcf624b2522 RNAppleAuthentication: 0571c08da8c327ae2afc0261b48b4a515b0286a6 RNCClipboard: 081418ae3b391b1012c3f41d045e5e39f1beed71 - RNCPicker: 106d11a1c159ce937009b2bd52db2bdb1577454f + RNCPicker: a37026a67de0cf1a33ffe8722783527e3b18ea9f RNDeviceInfo: 449272e9faf2afe94a3fe2896d169e92277fffa8 RNDevMenu: 72807568fe4188bd4c40ce32675d82434b43c45d RNFBAnalytics: f76bfa164ac235b00505deb9fc1776634056898c @@ -2589,7 +2556,7 @@ SPEC CHECKSUMS: RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: 74b7b3d06d667ba0bbf41da7718f2607ae0dfe8f RNGoogleSignin: ccaa4a81582cf713eea562c5dd9dc1961a715fd0 - RNLiveMarkdown: 23250f3d64c9d5f82ff36c4733c03544af0222d2 + RNLiveMarkdown: bfabd5938e5af5afc1e60e4e34286b17f8308184 RNLocalize: d4b8af4e442d4bcca54e68fc687a2129b4d71a81 rnmapbox-maps: df8fe93dbd251f25022f4023d31bc04160d4d65c RNPermissions: 0b61d30d21acbeafe25baaa47d9bae40a0c65216 @@ -2606,8 +2573,8 @@ SPEC CHECKSUMS: SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 Turf: 13d1a92d969ca0311bbc26e8356cca178ce95da2 VisionCamera: 1394a316c7add37e619c48d7aa40b38b954bf055 - Yoga: 64cd2a583ead952b0315d5135bf39e053ae9be70 + Yoga: 1b901a6d6eeba4e8a2e8f308f708691cdb5db312 -PODFILE CHECKSUM: 66a5c97ae1059e4da1993a4ad95abe5d819f555b +PODFILE CHECKSUM: a25a81f2b50270f0c0bd0aff2e2ebe4d0b4ec06d COCOAPODS: 1.13.0 diff --git a/jest/setup.ts b/jest/setup.ts index 174e59a7e493..488e3e36a1d3 100644 --- a/jest/setup.ts +++ b/jest/setup.ts @@ -2,11 +2,9 @@ import '@shopify/flash-list/jestSetup'; import 'react-native-gesture-handler/jestSetup'; import mockStorage from 'react-native-onyx/dist/storage/__mocks__'; import 'setimmediate'; -import mockFSLibrary from './setupMockFullstoryLib'; import setupMockImages from './setupMockImages'; setupMockImages(); -mockFSLibrary(); // This mock is required as per setup instructions for react-navigation testing // https://reactnavigation.org/docs/testing/#mocking-native-modules diff --git a/jest/setupMockFullstoryLib.ts b/jest/setupMockFullstoryLib.ts deleted file mode 100644 index 9edfccab9441..000000000000 --- a/jest/setupMockFullstoryLib.ts +++ /dev/null @@ -1,24 +0,0 @@ -type FSPageInterface = { - start: jest.Mock; -}; - -export default function mockFSLibrary() { - jest.mock('@fullstory/react-native', () => { - class Fullstory { - consent = jest.fn(); - - anonymize = jest.fn(); - - identify = jest.fn(); - } - - return { - FSPage(): FSPageInterface { - return { - start: jest.fn(), - }; - }, - default: Fullstory, - }; - }); -} diff --git a/package-lock.json b/package-lock.json index a552305e84b4..5ff16f636888 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,28 +1,25 @@ { "name": "new.expensify", - "version": "1.4.77-3", + "version": "1.4.75-0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "new.expensify", - "version": "1.4.77-3", + "version": "1.4.75-0", "hasInstallScript": true, "license": "MIT", "dependencies": { "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.76", + "@expensify/react-native-live-markdown": "0.1.70", "@expo/metro-runtime": "~3.1.1", "@formatjs/intl-datetimeformat": "^6.10.0", "@formatjs/intl-listformat": "^7.2.2", "@formatjs/intl-locale": "^3.3.0", "@formatjs/intl-numberformat": "^8.5.0", "@formatjs/intl-pluralrules": "^5.2.2", - "@fullstory/babel-plugin-react-native": "^1.2.1", - "@fullstory/browser": "^2.0.3", - "@fullstory/react-native": "^1.4.2", "@gorhom/portal": "^1.0.14", "@invertase/react-native-apple-authentication": "^2.2.2", "@kie/act-js": "^2.6.0", @@ -37,7 +34,7 @@ "@react-native-firebase/crashlytics": "^12.3.0", "@react-native-firebase/perf": "^12.3.0", "@react-native-google-signin/google-signin": "^10.0.1", - "@react-native-picker/picker": "2.7.6", + "@react-native-picker/picker": "2.6.1", "@react-navigation/material-top-tabs": "^6.6.3", "@react-navigation/native": "6.1.12", "@react-navigation/stack": "6.3.29", @@ -59,7 +56,7 @@ "date-fns-tz": "^2.0.0", "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", - "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#18fa764be9d68f72b48d238dcc20f2b0ca8f1147", + "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#9a68635cdcef4c81593c0f816a007bc9c707d46a", "expo": "^50.0.3", "expo-av": "~13.10.4", "expo-image": "1.11.0", @@ -73,6 +70,7 @@ "mapbox-gl": "^2.15.0", "onfido-sdk-ui": "14.15.0", "process": "^0.11.10", + "prop-types": "^15.7.2", "pusher-js": "8.3.0", "react": "18.2.0", "react-beautiful-dnd": "^13.1.1", @@ -82,7 +80,7 @@ "react-error-boundary": "^4.0.11", "react-fast-pdf": "1.0.13", "react-map-gl": "^7.1.3", - "react-native": "0.73.5", + "react-native": "0.73.4", "react-native-android-location-enabler": "^2.0.1", "react-native-blob-util": "0.19.4", "react-native-collapsible": "^1.6.1", @@ -102,7 +100,7 @@ "react-native-linear-gradient": "^2.8.1", "react-native-localize": "^2.2.6", "react-native-modal": "^13.0.0", - "react-native-onyx": "2.0.32", + "react-native-onyx": "2.0.41", "react-native-pager-view": "6.2.3", "react-native-pdf": "6.7.3", "react-native-performance": "^5.1.0", @@ -111,7 +109,7 @@ "react-native-plaid-link-sdk": "11.5.0", "react-native-qrcode-svg": "^6.2.0", "react-native-quick-sqlite": "git+https://github.com/margelo/react-native-quick-sqlite#abc91857d4b3efb2020ec43abd2a508563b64316", - "react-native-reanimated": "^3.8.0", + "react-native-reanimated": "^3.7.2", "react-native-release-profiler": "^0.1.6", "react-native-render-html": "6.3.1", "react-native-safe-area-context": "4.8.2", @@ -123,11 +121,11 @@ "react-native-url-polyfill": "^2.0.0", "react-native-view-shot": "3.8.0", "react-native-vision-camera": "^4.0.0-beta.13", - "react-native-web": "^0.19.12", + "react-native-web": "^0.19.9", "react-native-web-linear-gradient": "^1.1.2", "react-native-web-sound": "^0.1.3", "react-native-webview": "13.6.4", - "react-pdf": "^7.7.3", + "react-pdf": "^7.7.0", "react-plaid-link": "3.3.2", "react-web-config": "^1.0.0", "react-webcam": "^7.1.1", @@ -203,7 +201,7 @@ "csv-parse": "^5.5.5", "diff-so-fancy": "^1.3.0", "dotenv": "^16.0.3", - "electron": "^29.4.1", + "electron": "^29.3.3", "electron-builder": "24.13.2", "eslint": "^7.6.0", "eslint-config-airbnb-typescript": "^17.1.0", @@ -240,7 +238,7 @@ "ts-jest": "^29.1.2", "ts-node": "^10.9.2", "type-fest": "^4.10.2", - "typescript": "^5.3.2", + "typescript": "^5.4.5", "wait-port": "^0.2.9", "webpack": "^5.76.0", "webpack-bundle-analyzer": "^4.5.0", @@ -1854,6 +1852,19 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-object-assign": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-object-rest-spread": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", @@ -3558,14 +3569,9 @@ } }, "node_modules/@expensify/react-native-live-markdown": { - "version": "0.1.76", - "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.76.tgz", - "integrity": "sha512-JUXiLg0Y2FJiVOfZKRgoOP1no8ThPaJ6MBc122UsW6SG53OvS12MTHfgfKHjXRH1nIGro/p9ekYb8GAzpp+kdw==", - "workspaces": [ - "parser", - "example", - "WebExample" - ], + "version": "0.1.70", + "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.70.tgz", + "integrity": "sha512-HyqBtZyvuJFB4gIUECKIMxWCnTPlPj+GPWmw80VzMBRFV9QiFRKUKRWefNEJ1cXV5hl8a6oOWDQla+dCnjCzOQ==", "engines": { "node": ">= 18.0.0" }, @@ -5583,52 +5589,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@fullstory/babel-plugin-annotate-react": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@fullstory/babel-plugin-annotate-react/-/babel-plugin-annotate-react-2.3.0.tgz", - "integrity": "sha512-gYLUL6Tu0exbvTIhK9nSCaztmqBlQAm07Fvtl/nKTc+lxwFkcX9vR8RrdTbyjJZKbPaA5EMlExQ6GeLCXkfm5g==" - }, - "node_modules/@fullstory/babel-plugin-react-native": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@fullstory/babel-plugin-react-native/-/babel-plugin-react-native-1.2.1.tgz", - "integrity": "sha512-EMAgoPOo+31eppHxQf05oAGhKKTem7rw8GHDdbNJF0c5dQWzBGNVgF72TPjcxES91UI6hbss2eqoVOhUttLEoQ==", - "dependencies": { - "@babel/parser": "^7.0.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@fullstory/browser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@fullstory/browser/-/browser-2.0.3.tgz", - "integrity": "sha512-usjH8FB1O2LiSWoblsuKhFhlYDGpIPuyQVOx4JXtxm9QmQARdKZdNq1vPijxuDvOGjhwtVZa4JmhvByRRuDPnQ==", - "dependencies": { - "@fullstory/snippet": "2.0.3" - } - }, - "node_modules/@fullstory/react-native": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@fullstory/react-native/-/react-native-1.4.2.tgz", - "integrity": "sha512-Ig85ghn5UN+Tc1JWL/y4hY9vleeaVHL3f6qH9W4odDNP4XAv29+G82nIYQhBOQGoVnIQ4oQFQftir/dqAbidSw==", - "dependencies": { - "@fullstory/babel-plugin-annotate-react": "^2.2.0", - "@fullstory/babel-plugin-react-native": "^1.1.0" - }, - "peerDependencies": { - "expo": ">=47.0.0", - "react": "*", - "react-native": ">=0.61.0" - }, - "peerDependenciesMeta": { - "expo": { - "optional": true - } - } - }, - "node_modules/@fullstory/snippet": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@fullstory/snippet/-/snippet-2.0.3.tgz", - "integrity": "sha512-EaCuTQSLv5FvnjHLbTxErn3sS1+nLqf1p6sA/c4PV49stBtkUakA0eLhJJdaw0WLdXyEzZXf86lRNsjEzrgGPw==" - }, "node_modules/@gar/promisify": { "version": "1.1.3", "license": "MIT" @@ -7730,19 +7690,19 @@ } }, "node_modules/@react-native-community/cli": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.6.tgz", - "integrity": "sha512-647OSi6xBb8FbwFqX9zsJxOzu685AWtrOUWHfOkbKD+5LOpGORw+GQo0F9rWZnB68rLQyfKUZWJeaD00pGv5fw==", - "dependencies": { - "@react-native-community/cli-clean": "12.3.6", - "@react-native-community/cli-config": "12.3.6", - "@react-native-community/cli-debugger-ui": "12.3.6", - "@react-native-community/cli-doctor": "12.3.6", - "@react-native-community/cli-hermes": "12.3.6", - "@react-native-community/cli-plugin-metro": "12.3.6", - "@react-native-community/cli-server-api": "12.3.6", - "@react-native-community/cli-tools": "12.3.6", - "@react-native-community/cli-types": "12.3.6", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.2.tgz", + "integrity": "sha512-WgoUWwLDcf/G1Su2COUUVs3RzAwnV/vUTdISSpAUGgSc57mPabaAoUctKTnfYEhCnE3j02k3VtaVPwCAFRO3TQ==", + "dependencies": { + "@react-native-community/cli-clean": "12.3.2", + "@react-native-community/cli-config": "12.3.2", + "@react-native-community/cli-debugger-ui": "12.3.2", + "@react-native-community/cli-doctor": "12.3.2", + "@react-native-community/cli-hermes": "12.3.2", + "@react-native-community/cli-plugin-metro": "12.3.2", + "@react-native-community/cli-server-api": "12.3.2", + "@react-native-community/cli-tools": "12.3.2", + "@react-native-community/cli-types": "12.3.2", "chalk": "^4.1.2", "commander": "^9.4.1", "deepmerge": "^4.3.0", @@ -7761,11 +7721,11 @@ } }, "node_modules/@react-native-community/cli-clean": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-12.3.6.tgz", - "integrity": "sha512-gUU29ep8xM0BbnZjwz9MyID74KKwutq9x5iv4BCr2im6nly4UMf1B1D+V225wR7VcDGzbgWjaezsJShLLhC5ig==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-12.3.2.tgz", + "integrity": "sha512-90k2hCX0ddSFPT7EN7h5SZj0XZPXP0+y/++v262hssoey3nhurwF57NGWN0XAR0o9BSW7+mBfeInfabzDraO6A==", "dependencies": { - "@react-native-community/cli-tools": "12.3.6", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "execa": "^5.0.0" } @@ -7835,11 +7795,11 @@ } }, "node_modules/@react-native-community/cli-config": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-12.3.6.tgz", - "integrity": "sha512-JGWSYQ9EAK6m2v0abXwFLEfsqJ1zkhzZ4CV261QZF9MoUNB6h57a274h1MLQR9mG6Tsh38wBUuNfEPUvS1vYew==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-12.3.2.tgz", + "integrity": "sha512-UUCzDjQgvAVL/57rL7eOuFUhd+d+6qfM7V8uOegQFeFEmSmvUUDLYoXpBa5vAK9JgQtSqMBJ1Shmwao+/oElxQ==", "dependencies": { - "@react-native-community/cli-tools": "12.3.6", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "cosmiconfig": "^5.1.0", "deepmerge": "^4.3.0", @@ -7958,28 +7918,29 @@ } }, "node_modules/@react-native-community/cli-debugger-ui": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.6.tgz", - "integrity": "sha512-SjUKKsx5FmcK9G6Pb6UBFT0s9JexVStK5WInmANw75Hm7YokVvHEgtprQDz2Uvy5znX5g2ujzrkIU//T15KQzA==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.2.tgz", + "integrity": "sha512-nSWQUL+51J682DlfcC1bjkUbQbGvHCC25jpqTwHIjmmVjYCX1uHuhPSqQKgPNdvtfOkrkACxczd7kVMmetxY2Q==", "dependencies": { "serve-static": "^1.13.1" } }, "node_modules/@react-native-community/cli-doctor": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-12.3.6.tgz", - "integrity": "sha512-fvBDv2lTthfw4WOQKkdTop2PlE9GtfrlNnpjB818MhcdEnPjfQw5YaTUcnNEGsvGomdCs1MVRMgYXXwPSN6OvQ==", - "dependencies": { - "@react-native-community/cli-config": "12.3.6", - "@react-native-community/cli-platform-android": "12.3.6", - "@react-native-community/cli-platform-ios": "12.3.6", - "@react-native-community/cli-tools": "12.3.6", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-12.3.2.tgz", + "integrity": "sha512-GrAabdY4qtBX49knHFvEAdLtCjkmndjTeqhYO6BhsbAeKOtspcLT/0WRgdLIaKODRa61ADNB3K5Zm4dU0QrZOg==", + "dependencies": { + "@react-native-community/cli-config": "12.3.2", + "@react-native-community/cli-platform-android": "12.3.2", + "@react-native-community/cli-platform-ios": "12.3.2", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "command-exists": "^1.2.8", "deepmerge": "^4.3.0", "envinfo": "^7.10.0", "execa": "^5.0.0", "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5", "node-stream-zip": "^1.9.1", "ora": "^5.4.1", "semver": "^7.5.2", @@ -8041,6 +8002,11 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-doctor/node_modules/ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==" + }, "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -8064,14 +8030,15 @@ } }, "node_modules/@react-native-community/cli-hermes": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-12.3.6.tgz", - "integrity": "sha512-sNGwfOCl8OAIjWCkwuLpP8NZbuO0dhDI/2W7NeOGDzIBsf4/c4MptTrULWtGIH9okVPLSPX0NnRyGQ+mSwWyuQ==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-12.3.2.tgz", + "integrity": "sha512-SL6F9O8ghp4ESBFH2YAPLtIN39jdnvGBKnK4FGKpDCjtB3DnUmDsGFlH46S+GGt5M6VzfG2eeKEOKf3pZ6jUzA==", "dependencies": { - "@react-native-community/cli-platform-android": "12.3.6", - "@react-native-community/cli-tools": "12.3.6", + "@react-native-community/cli-platform-android": "12.3.2", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", - "hermes-profile-transformer": "^0.0.6" + "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5" } }, "node_modules/@react-native-community/cli-hermes/node_modules/ansi-styles": { @@ -8127,6 +8094,11 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-hermes/node_modules/ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==" + }, "node_modules/@react-native-community/cli-hermes/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -8139,11 +8111,11 @@ } }, "node_modules/@react-native-community/cli-platform-android": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.6.tgz", - "integrity": "sha512-DeDDAB8lHpuGIAPXeeD9Qu2+/wDTFPo99c8uSW49L0hkmZJixzvvvffbGQAYk32H0TmaI7rzvzH+qzu7z3891g==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.2.tgz", + "integrity": "sha512-MZ5nO8yi/N+Fj2i9BJcJ9C/ez+9/Ir7lQt49DWRo9YDmzye66mYLr/P2l/qxsixllbbDi7BXrlLpxaEhMrDopg==", "dependencies": { - "@react-native-community/cli-tools": "12.3.6", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-xml-parser": "^4.2.4", @@ -8216,11 +8188,11 @@ } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.6.tgz", - "integrity": "sha512-3eZ0jMCkKUO58wzPWlvAPRqezVKm9EPZyaPyHbRPWU8qw7JqkvnRlWIaYDGpjCJgVW4k2hKsEursLtYKb188tg==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.2.tgz", + "integrity": "sha512-OcWEAbkev1IL6SUiQnM6DQdsvfsKZhRZtoBNSj9MfdmwotVZSOEZJ+IjZ1FR9ChvMWayO9ns/o8LgoQxr1ZXeg==", "dependencies": { - "@react-native-community/cli-tools": "12.3.6", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-xml-parser": "^4.0.12", @@ -8293,17 +8265,17 @@ } }, "node_modules/@react-native-community/cli-plugin-metro": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.6.tgz", - "integrity": "sha512-3jxSBQt4fkS+KtHCPSyB5auIT+KKIrPCv9Dk14FbvOaEh9erUWEm/5PZWmtboW1z7CYeNbFMeXm9fM2xwtVOpg==" + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.2.tgz", + "integrity": "sha512-FpFBwu+d2E7KRhYPTkKvQsWb2/JKsJv+t1tcqgQkn+oByhp+qGyXBobFB8/R3yYvRRDCSDhS+atWTJzk9TjM8g==" }, "node_modules/@react-native-community/cli-server-api": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-12.3.6.tgz", - "integrity": "sha512-80NIMzo8b2W+PL0Jd7NjiJW9mgaT8Y8wsIT/lh6mAvYH7mK0ecDJUYUTAAv79Tbo1iCGPAr3T295DlVtS8s4yQ==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-12.3.2.tgz", + "integrity": "sha512-iwa7EO9XFA/OjI5pPLLpI/6mFVqv8L73kNck3CNOJIUCCveGXBKK0VMyOkXaf/BYnihgQrXh+x5cxbDbggr7+Q==", "dependencies": { - "@react-native-community/cli-debugger-ui": "12.3.6", - "@react-native-community/cli-tools": "12.3.6", + "@react-native-community/cli-debugger-ui": "12.3.2", + "@react-native-community/cli-tools": "12.3.2", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.1", @@ -8448,9 +8420,9 @@ } }, "node_modules/@react-native-community/cli-tools": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-12.3.6.tgz", - "integrity": "sha512-FPEvZn19UTMMXUp/piwKZSh8cMEfO8G3KDtOwo53O347GTcwNrKjgZGtLSPELBX2gr+YlzEft3CoRv2Qmo83fQ==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-12.3.2.tgz", + "integrity": "sha512-nDH7vuEicHI2TI0jac/DjT3fr977iWXRdgVAqPZFFczlbs7A8GQvEdGnZ1G8dqRUmg+kptw0e4hwczAOG89JzQ==", "dependencies": { "appdirsjs": "^1.2.4", "chalk": "^4.1.2", @@ -8548,9 +8520,9 @@ } }, "node_modules/@react-native-community/cli-types": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-12.3.6.tgz", - "integrity": "sha512-xPqTgcUtZowQ8WKOkI9TLGBwH2bGggOC4d2FFaIRST3gTcjrEeGRNeR5aXCzJFIgItIft8sd7p2oKEdy90+01Q==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-12.3.2.tgz", + "integrity": "sha512-9D0UEFqLW8JmS16mjHJxUJWX8E+zJddrHILSH8AJHZ0NNHv4u2DXKdb0wFLMobFxGNxPT+VSOjc60fGvXzWHog==", "dependencies": { "joi": "^17.2.1" } @@ -8882,12 +8854,12 @@ } }, "node_modules/@react-native-picker/picker": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.7.6.tgz", - "integrity": "sha512-Cs3PxRmE2vu6TofM9vt9TV8ZYFOtEPSupNxwoorH9lpkKM9HGG8QwK2i29KOEoODpUbtudKHUTtqhMZSuX9pgA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.6.1.tgz", + "integrity": "sha512-oJftvmLOj6Y6/bF4kPcK6L83yNBALGmqNYugf94BzP0FQGpHBwimVN2ygqkQ2Sn2ZU3pGUZMs0jV6+Gku2GyYg==", "peerDependencies": { - "react": "*", - "react-native": "*" + "react": ">=16", + "react-native": ">=0.57" } }, "node_modules/@react-native/assets-registry": { @@ -9002,13 +8974,13 @@ } }, "node_modules/@react-native/community-cli-plugin": { - "version": "0.73.17", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.17.tgz", - "integrity": "sha512-F3PXZkcHg+1ARIr6FRQCQiB7ZAA+MQXGmq051metRscoLvgYJwj7dgC8pvgy0kexzUkHu5BNKrZeySzUft3xuQ==", + "version": "0.73.16", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.16.tgz", + "integrity": "sha512-eNH3v3qJJF6f0n/Dck90qfC9gVOR4coAXMTdYECO33GfgjTi+73vf/SBqlXw9HICH/RNZYGPM3wca4FRF7TYeQ==", "dependencies": { - "@react-native-community/cli-server-api": "12.3.6", - "@react-native-community/cli-tools": "12.3.6", - "@react-native/dev-middleware": "0.73.8", + "@react-native-community/cli-server-api": "12.3.2", + "@react-native-community/cli-tools": "12.3.2", + "@react-native/dev-middleware": "0.73.7", "@react-native/metro-babel-transformer": "0.73.15", "chalk": "^4.0.0", "execa": "^5.1.1", @@ -9094,9 +9066,8 @@ } }, "node_modules/@react-native/dev-middleware": { - "version": "0.73.8", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.8.tgz", - "integrity": "sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg==", + "version": "0.73.7", + "license": "MIT", "dependencies": { "@isaacs/ttlcache": "^1.4.1", "@react-native/debugger-frontend": "0.73.3", @@ -9107,8 +9078,7 @@ "node-fetch": "^2.2.0", "open": "^7.0.3", "serve-static": "^1.13.1", - "temp-dir": "^2.0.0", - "ws": "^6.2.2" + "temp-dir": "^2.0.0" }, "engines": { "node": ">=18" @@ -9139,14 +9109,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/dev-middleware/node_modules/ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, "node_modules/@react-native/gradle-plugin": { "version": "0.73.4", "license": "MIT", @@ -16797,8 +16759,7 @@ }, "node_modules/colorette": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -17866,9 +17827,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.11", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", - "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "node_modules/debounce": { "version": "1.2.1", @@ -18607,9 +18568,9 @@ } }, "node_modules/electron": { - "version": "29.4.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-29.4.1.tgz", - "integrity": "sha512-YQvMAtdmjMF1yGfQFuO/KOmy+04SKot85NalppK/8zxKwOKrrK6dJBp+nJWteqBwRAKiasSrC1lDalF6hZct/w==", + "version": "29.3.3", + "resolved": "https://registry.npmjs.org/electron/-/electron-29.3.3.tgz", + "integrity": "sha512-I/USTe9UsQUKb/iuiYnmt074vHxNHCJZWYiU4Xg6lNPKVBsPadAhZcc+g2gYLqC1rA7KT4AvKTmNsY8n7oEUCw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -20340,8 +20301,8 @@ }, "node_modules/expensify-common": { "version": "1.0.0", - "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#18fa764be9d68f72b48d238dcc20f2b0ca8f1147", - "integrity": "sha512-AbeXop0pAVnkOJ7uVShqF7q9xwOYADW1mit0kK73ADkNuuQuHCYTqQSsQDuLaG80c5N96h+NZF/9LvcrhU2aFw==", + "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#9a68635cdcef4c81593c0f816a007bc9c707d46a", + "integrity": "sha512-9BHjM3kZs7/dil0oykEQFkEhXjVD5liTttmO7ZYtPZkl4j6g97mubY2p9lYpWwpkWckUfvU7nGuZQjahw9xSFA==", "license": "MIT", "dependencies": { "classnames": "2.5.0", @@ -20946,9 +20907,9 @@ "license": "MIT" }, "node_modules/fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz", + "integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==", "funding": [ { "type": "github", @@ -26588,9 +26549,9 @@ } }, "node_modules/joi": { - "version": "17.13.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", - "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", + "version": "17.12.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.3.tgz", + "integrity": "sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g==", "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", @@ -27355,6 +27316,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/logkitty/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, "node_modules/logkitty/node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -27471,6 +27440,18 @@ "node": ">=8" } }, + "node_modules/logkitty/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/longest": { "version": "1.0.1", "license": "MIT", @@ -30590,6 +30571,13 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/qrcode/node_modules/camelcase": { + "version": "5.3.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/qrcode/node_modules/cliui": { "version": "6.0.0", "license": "ISC", @@ -30696,6 +30684,17 @@ "node": ">=8" } }, + "node_modules/qrcode/node_modules/yargs-parser": { + "version": "18.1.3", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/qs": { "version": "6.10.3", "license": "BSD-3-Clause", @@ -31115,17 +31114,17 @@ } }, "node_modules/react-native": { - "version": "0.73.5", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.73.5.tgz", - "integrity": "sha512-iHgDArmF4CrhL0qTj+Rn+CBN5pZWUL9lUGl8ub+V9Hwu/vnzQQh8rTMVSwVd2sV6N76KjpE5a4TfIAHkpIHhKg==", + "version": "0.73.4", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.73.4.tgz", + "integrity": "sha512-VtS+Yr6OOTIuJGDECIYWzNU8QpJjASQYvMtfa/Hvm/2/h5GdB6W9H9TOmh13x07Lj4AOhNMx3XSsz6TdrO4jIg==", "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "12.3.6", - "@react-native-community/cli-platform-android": "12.3.6", - "@react-native-community/cli-platform-ios": "12.3.6", + "@react-native-community/cli": "12.3.2", + "@react-native-community/cli-platform-android": "12.3.2", + "@react-native-community/cli-platform-ios": "12.3.2", "@react-native/assets-registry": "0.73.1", "@react-native/codegen": "0.73.3", - "@react-native/community-cli-plugin": "0.73.17", + "@react-native/community-cli-plugin": "0.73.16", "@react-native/gradle-plugin": "0.73.4", "@react-native/js-polyfills": "0.73.1", "@react-native/normalize-colors": "0.73.2", @@ -31432,9 +31431,9 @@ } }, "node_modules/react-native-onyx": { - "version": "2.0.32", - "resolved": "https://registry.npmjs.org/react-native-onyx/-/react-native-onyx-2.0.32.tgz", - "integrity": "sha512-tB9wqMJGTLOYfrfplRP+9aq5JdD8w/hV/OZsMAVH+ewbE1zLY8OymUsAsIFdF1v+cB8HhehP569JVLZmhm6bsg==", + "version": "2.0.41", + "resolved": "https://registry.npmjs.org/react-native-onyx/-/react-native-onyx-2.0.41.tgz", + "integrity": "sha512-33r0sVBq7MV/GZwRneRt81uxgW8x3YG75VNJvThycB/dkCnGCfbxoVkZADVH3ET3jzfFXy9wnS06sZnZp78zMQ==", "dependencies": { "ascii-table": "0.0.9", "fast-equals": "^4.0.3", @@ -31555,15 +31554,10 @@ } }, "node_modules/react-native-reanimated": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.8.1.tgz", - "integrity": "sha512-EdM0vr3JEaNtqvstqESaPfOBy0gjYBkr1iEolWJ82Ax7io8y9OVUIphgsLKTB36CtR1XtmBw0RZVj7KArc7ZVA==", + "version": "3.7.2", + "license": "MIT", "dependencies": { - "@babel/plugin-transform-arrow-functions": "^7.0.0-0", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", - "@babel/plugin-transform-optional-chaining": "^7.0.0-0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", - "@babel/plugin-transform-template-literals": "^7.0.0-0", + "@babel/plugin-transform-object-assign": "^7.16.7", "@babel/preset-typescript": "^7.16.7", "convert-source-map": "^2.0.0", "invariant": "^2.2.4" @@ -31748,12 +31742,11 @@ } }, "node_modules/react-native-web": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.12.tgz", - "integrity": "sha512-o2T0oztoVDQjztt4YksO9S1XRjoH/AqcSvifgWLrPJgGVbMWsfhILgl6lfUdEamVZzZSVV/2gqDVMAk/qq7mZw==", + "version": "0.19.9", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.6", - "@react-native/normalize-colors": "^0.74.1", + "@react-native/normalize-color": "^2.1.0", "fbjs": "^3.0.4", "inline-style-prefixer": "^6.0.1", "memoize-one": "^6.0.0", @@ -31783,11 +31776,6 @@ "react-native-web": "*" } }, - "node_modules/react-native-web/node_modules/@react-native/normalize-colors": { - "version": "0.74.81", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.81.tgz", - "integrity": "sha512-g3YvkLO7UsSWiDfYAU+gLhRHtEpUyz732lZB+N8IlLXc5MnfXHC8GKneDGY3Mh52I3gBrs20o37D5viQX9E1CA==" - }, "node_modules/react-native-web/node_modules/memoize-one": { "version": "6.0.0", "license": "MIT" @@ -31971,9 +31959,9 @@ } }, "node_modules/react-pdf": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-7.7.3.tgz", - "integrity": "sha512-a2VfDl8hiGjugpqezBTUzJHYLNB7IS7a2t7GD52xMI9xHg8LdVaTMsnM9ZlNmKadnStT/tvX5IfV0yLn+JvYmw==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-7.7.1.tgz", + "integrity": "sha512-cbbf/PuRtGcPPw+HLhMI1f6NSka8OJgg+j/yPWTe95Owf0fK6gmVY7OXpTxMeh92O3T3K3EzfE0ML0eXPGwR5g==", "dependencies": { "clsx": "^2.0.0", "dequal": "^2.0.3", @@ -36041,9 +36029,10 @@ } }, "node_modules/typescript": { - "version": "5.3.3", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "devOptional": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -37908,26 +37897,6 @@ "node": ">=12" } }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, "node_modules/yargs/node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index 5d1244a40dab..fc10521cda27 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.4.77-3", + "version": "1.4.75-0", "author": "Expensify, Inc.", "homepage": "https://new.expensify.com", "description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.", @@ -65,16 +65,13 @@ "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.76", + "@expensify/react-native-live-markdown": "0.1.70", "@expo/metro-runtime": "~3.1.1", "@formatjs/intl-datetimeformat": "^6.10.0", "@formatjs/intl-listformat": "^7.2.2", "@formatjs/intl-locale": "^3.3.0", "@formatjs/intl-numberformat": "^8.5.0", "@formatjs/intl-pluralrules": "^5.2.2", - "@fullstory/babel-plugin-react-native": "^1.2.1", - "@fullstory/browser": "^2.0.3", - "@fullstory/react-native": "^1.4.2", "@gorhom/portal": "^1.0.14", "@invertase/react-native-apple-authentication": "^2.2.2", "@kie/act-js": "^2.6.0", @@ -89,7 +86,7 @@ "@react-native-firebase/crashlytics": "^12.3.0", "@react-native-firebase/perf": "^12.3.0", "@react-native-google-signin/google-signin": "^10.0.1", - "@react-native-picker/picker": "2.7.6", + "@react-native-picker/picker": "2.6.1", "@react-navigation/material-top-tabs": "^6.6.3", "@react-navigation/native": "6.1.12", "@react-navigation/stack": "6.3.29", @@ -111,7 +108,7 @@ "date-fns-tz": "^2.0.0", "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", - "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#18fa764be9d68f72b48d238dcc20f2b0ca8f1147", + "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#9a68635cdcef4c81593c0f816a007bc9c707d46a", "expo": "^50.0.3", "expo-av": "~13.10.4", "expo-image": "1.11.0", @@ -125,6 +122,7 @@ "mapbox-gl": "^2.15.0", "onfido-sdk-ui": "14.15.0", "process": "^0.11.10", + "prop-types": "^15.7.2", "pusher-js": "8.3.0", "react": "18.2.0", "react-beautiful-dnd": "^13.1.1", @@ -134,7 +132,7 @@ "react-error-boundary": "^4.0.11", "react-fast-pdf": "1.0.13", "react-map-gl": "^7.1.3", - "react-native": "0.73.5", + "react-native": "0.73.4", "react-native-android-location-enabler": "^2.0.1", "react-native-blob-util": "0.19.4", "react-native-collapsible": "^1.6.1", @@ -154,7 +152,7 @@ "react-native-linear-gradient": "^2.8.1", "react-native-localize": "^2.2.6", "react-native-modal": "^13.0.0", - "react-native-onyx": "2.0.32", + "react-native-onyx": "2.0.41", "react-native-pager-view": "6.2.3", "react-native-pdf": "6.7.3", "react-native-performance": "^5.1.0", @@ -163,7 +161,7 @@ "react-native-plaid-link-sdk": "11.5.0", "react-native-qrcode-svg": "^6.2.0", "react-native-quick-sqlite": "git+https://github.com/margelo/react-native-quick-sqlite#abc91857d4b3efb2020ec43abd2a508563b64316", - "react-native-reanimated": "^3.8.0", + "react-native-reanimated": "^3.7.2", "react-native-release-profiler": "^0.1.6", "react-native-render-html": "6.3.1", "react-native-safe-area-context": "4.8.2", @@ -175,11 +173,11 @@ "react-native-url-polyfill": "^2.0.0", "react-native-view-shot": "3.8.0", "react-native-vision-camera": "^4.0.0-beta.13", - "react-native-web": "^0.19.12", + "react-native-web": "^0.19.9", "react-native-web-linear-gradient": "^1.1.2", "react-native-web-sound": "^0.1.3", "react-native-webview": "13.6.4", - "react-pdf": "^7.7.3", + "react-pdf": "^7.7.0", "react-plaid-link": "3.3.2", "react-web-config": "^1.0.0", "react-webcam": "^7.1.1", @@ -255,7 +253,7 @@ "csv-parse": "^5.5.5", "diff-so-fancy": "^1.3.0", "dotenv": "^16.0.3", - "electron": "^29.4.1", + "electron": "^29.3.3", "electron-builder": "24.13.2", "eslint": "^7.6.0", "eslint-config-airbnb-typescript": "^17.1.0", @@ -292,7 +290,7 @@ "ts-jest": "^29.1.2", "ts-node": "^10.9.2", "type-fest": "^4.10.2", - "typescript": "^5.3.2", + "typescript": "^5.4.5", "wait-port": "^0.2.9", "webpack": "^5.76.0", "webpack-bundle-analyzer": "^4.5.0", @@ -302,7 +300,7 @@ "yaml": "^2.2.1" }, "overrides": { - "react-native": "0.73.5", + "react-native": "0.73.4", "expo": "$expo", "react-native-svg": "$react-native-svg" }, diff --git a/patches/@shopify+flash-list+1.6.3.patch b/patches/@shopify+flash-list+1.6.3.patch index e3d690055ff8..ab347fbb4e9c 100644 --- a/patches/@shopify+flash-list+1.6.3.patch +++ b/patches/@shopify+flash-list+1.6.3.patch @@ -867,7 +867,7 @@ index 023b94a..0000000 -{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/tslib/tslib.d.ts","../node_modules/@types/react-native/modules/BatchedBridge.d.ts","../node_modules/@types/react-native/modules/Codegen.d.ts","../node_modules/@types/react-native/modules/Devtools.d.ts","../node_modules/@types/react-native/modules/globals.d.ts","../node_modules/@types/react-native/modules/LaunchScreen.d.ts","../node_modules/@types/react/global.d.ts","../node_modules/csstype/index.d.ts","../node_modules/@types/prop-types/index.d.ts","../node_modules/@types/scheduler/tracing.d.ts","../node_modules/@types/react/index.d.ts","../node_modules/@types/react-native/private/Utilities.d.ts","../node_modules/@types/react-native/public/Insets.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/RendererProxy.d.ts","../node_modules/@types/react-native/public/ReactNativeTypes.d.ts","../node_modules/@types/react-native/Libraries/Types/CoreEventTypes.d.ts","../node_modules/@types/react-native/public/ReactNativeRenderer.d.ts","../node_modules/@types/react-native/Libraries/Components/Touchable/Touchable.d.ts","../node_modules/@types/react-native/Libraries/Components/View/ViewAccessibility.d.ts","../node_modules/@types/react-native/Libraries/Components/View/ViewPropTypes.d.ts","../node_modules/@types/react-native/Libraries/Components/RefreshControl/RefreshControl.d.ts","../node_modules/@types/react-native/Libraries/Components/ScrollView/ScrollView.d.ts","../node_modules/@types/react-native/Libraries/Components/View/View.d.ts","../node_modules/@types/react-native/Libraries/Image/ImageResizeMode.d.ts","../node_modules/@types/react-native/Libraries/Image/ImageSource.d.ts","../node_modules/@types/react-native/Libraries/Image/Image.d.ts","../node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.d.ts","../node_modules/@react-native/virtualized-lists/index.d.ts","../node_modules/@types/react-native/Libraries/Lists/FlatList.d.ts","../node_modules/@types/react-native/Libraries/Lists/SectionList.d.ts","../node_modules/@types/react-native/Libraries/Text/Text.d.ts","../node_modules/@types/react-native/Libraries/Animated/Animated.d.ts","../node_modules/@types/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts","../node_modules/@types/react-native/Libraries/StyleSheet/StyleSheet.d.ts","../node_modules/@types/react-native/Libraries/StyleSheet/processColor.d.ts","../node_modules/@types/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts","../node_modules/@types/react-native/Libraries/Alert/Alert.d.ts","../node_modules/@types/react-native/Libraries/Animated/Easing.d.ts","../node_modules/@types/react-native/Libraries/Animated/useAnimatedValue.d.ts","../node_modules/@types/react-native/Libraries/vendor/emitter/EventEmitter.d.ts","../node_modules/@types/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts","../node_modules/@types/react-native/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts","../node_modules/@types/react-native/Libraries/AppState/AppState.d.ts","../node_modules/@types/react-native/Libraries/BatchedBridge/NativeModules.d.ts","../node_modules/@types/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts","../node_modules/@types/react-native/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts","../node_modules/@types/react-native/Libraries/Components/Clipboard/Clipboard.d.ts","../node_modules/@types/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts","../node_modules/@types/react-native/Libraries/EventEmitter/NativeEventEmitter.d.ts","../node_modules/@types/react-native/Libraries/Components/Keyboard/Keyboard.d.ts","../node_modules/@types/react-native/private/TimerMixin.d.ts","../node_modules/@types/react-native/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts","../node_modules/@types/react-native/Libraries/Components/Pressable/Pressable.d.ts","../node_modules/@types/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts","../node_modules/@types/react-native/Libraries/Components/SafeAreaView/SafeAreaView.d.ts","../node_modules/@types/react-native/Libraries/Components/StatusBar/StatusBar.d.ts","../node_modules/@types/react-native/Libraries/Components/Switch/Switch.d.ts","../node_modules/@types/react-native/Libraries/Components/TextInput/InputAccessoryView.d.ts","../node_modules/@types/react-native/Libraries/Components/TextInput/TextInput.d.ts","../node_modules/@types/react-native/Libraries/Components/ToastAndroid/ToastAndroid.d.ts","../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts","../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableHighlight.d.ts","../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableOpacity.d.ts","../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts","../node_modules/@types/react-native/Libraries/Components/Button.d.ts","../node_modules/@types/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts","../node_modules/@types/react-native/Libraries/Interaction/InteractionManager.d.ts","../node_modules/@types/react-native/Libraries/Interaction/PanResponder.d.ts","../node_modules/@types/react-native/Libraries/LayoutAnimation/LayoutAnimation.d.ts","../node_modules/@types/react-native/Libraries/Linking/Linking.d.ts","../node_modules/@types/react-native/Libraries/LogBox/LogBox.d.ts","../node_modules/@types/react-native/Libraries/Modal/Modal.d.ts","../node_modules/@types/react-native/Libraries/Performance/Systrace.d.ts","../node_modules/@types/react-native/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts","../node_modules/@types/react-native/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts","../node_modules/@types/react-native/Libraries/Utilities/IPerformanceLogger.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/AppRegistry.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/I18nManager.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/RootTag.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/UIManager.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/requireNativeComponent.d.ts","../node_modules/@types/react-native/Libraries/Settings/Settings.d.ts","../node_modules/@types/react-native/Libraries/Share/Share.d.ts","../node_modules/@types/react-native/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts","../node_modules/@types/react-native/Libraries/StyleSheet/PlatformColorValueTypes.d.ts","../node_modules/@types/react-native/Libraries/TurboModule/RCTExport.d.ts","../node_modules/@types/react-native/Libraries/TurboModule/TurboModuleRegistry.d.ts","../node_modules/@types/react-native/Libraries/Utilities/Appearance.d.ts","../node_modules/@types/react-native/Libraries/Utilities/BackHandler.d.ts","../node_modules/@types/react-native/Libraries/Utilities/DevSettings.d.ts","../node_modules/@types/react-native/Libraries/Utilities/Dimensions.d.ts","../node_modules/@types/react-native/Libraries/Utilities/PixelRatio.d.ts","../node_modules/@types/react-native/Libraries/Utilities/Platform.d.ts","../node_modules/@types/react-native/Libraries/Vibration/Vibration.d.ts","../node_modules/@types/react-native/Libraries/YellowBox/YellowBoxDeprecated.d.ts","../node_modules/@types/react-native/Libraries/vendor/core/ErrorUtils.d.ts","../node_modules/@types/react-native/public/DeprecatedPropertiesAlias.d.ts","../node_modules/@types/react-native/index.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/dependencies/ContextProvider.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/dependencies/DataProvider.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/layoutmanager/LayoutManager.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/dependencies/LayoutProvider.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/dependencies/GridLayoutProvider.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/scrollcomponent/BaseScrollView.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/ViewabilityTracker.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/VirtualRenderer.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/ItemAnimator.d.ts","../node_modules/recyclerlistview/dist/reactnative/utils/ComponentCompat.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/RecyclerListView.d.ts","../node_modules/recyclerlistview/dist/reactnative/utils/AutoScroll.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/layoutmanager/GridLayoutManager.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/ProgressiveListView.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/devutils/debughandlers/resize/ResizeDebugHandler.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/devutils/debughandlers/DebugHandlers.d.ts","../node_modules/recyclerlistview/dist/reactnative/index.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/StickyContainer.d.ts","../node_modules/recyclerlistview/sticky/index.d.ts","../src/native/auto-layout/AutoLayoutViewNativeComponentProps.ts","../src/native/auto-layout/AutoLayoutViewNativeComponent.ts","../src/native/auto-layout/AutoLayoutView.tsx","../src/native/cell-container/CellContainer.tsx","../src/PureComponentWrapper.tsx","../src/viewability/ViewToken.ts","../src/FlashListProps.ts","../src/utils/AverageWindow.ts","../src/utils/ContentContainerUtils.ts","../src/GridLayoutProviderWithProps.ts","../src/errors/CustomError.ts","../src/errors/ExceptionList.ts","../src/errors/Warnings.ts","../src/viewability/ViewabilityHelper.ts","../src/viewability/ViewabilityManager.ts","../node_modules/recyclerlistview/dist/reactnative/platform/reactnative/itemanimators/defaultjsanimator/DefaultJSItemAnimator.d.ts","../src/native/config/PlatformHelper.ts","../src/FlashList.tsx","../src/AnimatedFlashList.ts","../src/MasonryFlashList.tsx","../src/benchmark/AutoScrollHelper.ts","../src/benchmark/roundToDecimalPlaces.ts","../src/benchmark/JSFPSMonitor.ts","../src/benchmark/useBlankAreaTracker.ts","../src/benchmark/useBenchmark.ts","../src/benchmark/useDataMultiplier.ts","../src/benchmark/useFlatListBenchmark.ts","../src/index.ts","../src/__tests__/AverageWindow.test.ts","../src/__tests__/ContentContainerUtils.test.ts","../node_modules/@quilted/react-testing/build/typescript/types.d.ts","../node_modules/@quilted/react-testing/build/typescript/matchers/index.d.ts","../node_modules/@quilted/react-testing/build/typescript/environment.d.ts","../node_modules/@quilted/react-testing/build/typescript/implementations/test-renderer.d.ts","../node_modules/@quilted/react-testing/build/typescript/index.d.ts","../src/__tests__/helpers/mountFlashList.tsx","../src/__tests__/FlashList.test.tsx","../src/__tests__/GridLayoutProviderWithProps.test.ts","../src/__tests__/helpers/mountMasonryFlashList.tsx","../src/__tests__/MasonryFlashList.test.ts","../src/native/config/PlatformHelper.web.ts","../src/__tests__/PlatformHelper.web.test.ts","../src/__tests__/ViewabilityHelper.test.ts","../src/__tests__/useBlankAreaTracker.test.tsx","../src/native/auto-layout/AutoLayoutViewNativeComponent.android.ts","../src/native/auto-layout/AutoLayoutViewNativeComponent.ios.ts","../src/native/cell-container/CellContainer.android.ts","../src/native/cell-container/CellContainer.ios.ts","../src/native/cell-container/CellContainer.web.tsx","../src/native/config/PlatformHelper.android.ts","../src/native/config/PlatformHelper.ios.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/chalk/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/@types/jest/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/parse-json/index.d.ts","../node_modules/@types/prettier/index.d.ts","../node_modules/@types/react-test-renderer/index.d.ts","../node_modules/@types/scheduler/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/@types/websocket/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"14a84fbe4ec531dcbaf5d2594fd95df107258e60ae6c6a076404f13c3f66f28e",{"version":"1c0e04c54479b57b49fec4e93556974b3d071b65d0b750897e07b3b7d2145fc5","affectsGlobalScope":true},"bc1852215dc1488e6747ca43ae0605041de22ab9a6eeef39542d29837919c414","ae6da60c852e7bacc4a49ff14a42dc1a3fdbb44e11bd9b4acb1bf3d58866ee71",{"version":"0dab023e564abb43c817779fff766e125017e606db344f9633fdba330c970532","affectsGlobalScope":true},"4cbd76eafece5844dc0a32807e68047aecbdd8d863edba651f34c050624f18df",{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"ea0aa24a32c073b8639aa1f3130ba0add0f0f2f76b314d9ba988a5cb91d7e3c4","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"29b8a3a533884705024eab54e56465614ad167f5dd87fdc2567d8e451f747224","affectsGlobalScope":true},"4f2490e3f420ea6345cade9aee5eada76888848e053726956aaf2af8705477ea","b3ac03d0c853c0ac076a10cfef4dc21d810f54dac5899ade2b1c628c35263533","d17a689ac1bd689f37d6f0d3d9a21afac349e60633844044f7a7b7b9d6f7fd83","019650941b03d4978f62d21ae874788a665c02b54e3268ef2029b02d3b4f7561","ae591c8a4d5c7f7fa44b6965016391457d9c1fd763475f68340599a2a2987a24","fbdef0c642b82cc1713b965f07b4da8005bbbb2c026039bfdc15ca2d20769e38","c2c004e7f1a150541d06bc4a408b96e45ac1f08e0b1b35dfd07fc0f678205f95","1f2081eb2cbeb0828f9baa1dd12cf6d207f8104ae0b085ab9975d11adc7f7e6f","cda9069fc4c312ff484c1373455e4297a02d38ae3bd7d0959aad772a2809623c","c028d20108bcaa3b1fdf3514956a8a90ccf680f18672fa3c92ce5acf81d7ab23","1054f6e8774a75aaf17e7cfea4899344f69590b2db1e06da21048ed1e063c693","9533301b8f75664e1b40a8484a4fd9c77efc04aef526409c2447aab7d12ddc63","b78b5b3fdb4e30976c4263c66c0ad38fb81edcc8075a4160a39d99c6dedd35be","032b51d656feaece529823992f5a39fe9e24d44dfa21b3a149982f7787fc7bdf","5bbfdfb694b019cb2a2022fba361a7a857efc1fc2b77a892c92ebc1349b7e984","46bc25e3501d321a70d0878e82a1d47b16ab77bdf017c8fecc76343f50806a0d","42bacb33cddecbcfe3e043ee1117ba848801749e44f947626765b3e0aec74b1c","49dba0d7a37268e6ae2026e84ad4362eac7e776d816756abf649be7fa177dcd5","5f2b5ab209daae571eb9acc1fd2067ccc94e2a13644579a245875bc4f02b562f","f072acf9547f89b814b9fdb3e72f4ebb1649191591cec99db43d35383906f87f","42450dba65ba1307f27c914a8e45e0b602c6f8f78773c052e42b0b87562f081e","f5870d0ca7b0dfb7e2b9ba9abad3a2e2bffe5c711b53dab2e6e76ca2df58302b","aeb20169389e9f508b1a4eb2a30371b64d64bb7c8543120bc39a3c6b78adfcc9","2a3d3acbab8567057a943f9f56113c0144f5fc561623749fbd6bb5c2b33bf738","9cf21fdcd1beb5142a514887133fa59057e06275bb3070713f3b6d51e830ffa0","0ad4f0b67db47064b404df89c50f99552ce12d6c4bb6154255be61eb6beed094","f8a464b9999126fe1095968c266c0d9c6174612cf256379a1ed1993a87bccdc6","49f981ca657ac160b5de5919ee5602d48bc8f8aac0805107c2ce4fd41dc9a2a1","56e4e08d95a3a7886266a2b4f66b67065c340480d9f1beb73ed7578aa83c639a","eb4360d3818dcd879ee965ae2f4b3fdfdc4149db921b6be338cb7dc7c2bd6710","1c1275f325f13af001aa5873418cb497a26b4b8271f9ad20a45e33f61ea3f9d9","b33e8426136c4f9b349b02c940d23310d350179f790899733aa097ed76457061","05aab001669a230a88820be09a54031c45d9af2488b27d53d4a9c8880ce73e8f","d93a066d4b8b33335dfff910fb25abb8979f8814f8ba45ea902a1360907da1f6","41e97e42d182b4d5f0733ebaad69294faaa507d95e595f317168b8f2325da9ca","debc734fc99b6e1684ed565946bad008913c769d4d2e400d8722c0c23d079c06","5a9f7e087aacb01fa0cdbc36b703a60367239f62beed2507a507199e4c417549","c7c23798fbf564983ed69c1ced3371970d986aaed4801a6e0fb41862550dc034","921f5bce372610ae8948ade7d82decbd2cf56d263de578976189585edd0abac0","ac11f8b13beef593e2f097450a7e214b23dca0d428babd570a2f39582f10e9ab","2499beb5d3e2b4c606977bcc2e08b6ef77b2ecda70e78e0622f5af3bed95c9ba","a11057410396907b84051cbdb8b0cd7f7049d72b58d2b6ac1c14ac2608191a52","bb630c26d487cc45ed107f4f2d3c2a95434716f6367f059de734c40d288c31eb","67cbce0ccdfa96b25de478a93cc493266c152e256c3c96b3d16d1f811e3d881f","19905c928bc4c016d05d915625bb08568447266c4661232faf89f7ddc4417ccc","26204eb4c326e8c975f1b789cbf345c6820205bded6d72e57246a83918d3bc84","618f25b2d41a99216e71817a3bc578991eee86c858c3f0f62a9e70707f4d279d","4cd2947878536ec078e4115b7d53cdcd4dcecd3a8288760caa79098db4f8f61f","2129e984399e94c82b77a32b975f3371ca5ee96341ab9f123474f1a5a1a9921f","798120aaa4952d68cd4b43d6625524c62a135c2f5a3eb705caee98de2355230d","6047365397173788c34bd71fea2bf07a9036d981212efd059b33e52d2c405e97","d7e25d7c03ccf8b10972c2a3a57e29a8d9024e6dbc4ac223baf633a6e8c7145c","6c2e2dead2d80007ee44c429b925d0a7b86f8f3d4c237b2197f7db9f39545dc6","38fbc8f9610fbf4bf619854b26e28c4fbbab16dc1944c4317a4af9bf1ac08d8e","1bd0470a72e6869c330e6e978f15ef32ba2c245249aca097b410448152e8a06b","dd05d7970a92b789f7df3b2252574b2e60f1b9a3758e2839e167b498b8f77159","7092be1889127b2f319efd5d9bdcc0b5cf6fe0740e47247ed039446045518898","0a3d5dbf7c2091017e697ebf9af0a727571f5d99cb4c19e6856212a745c6c355","d05f9c767924db6fb89f6075acb64c042cebdb12779bbd1aaca12c850b772d49","d032678e20ff0f4b8ef6f1e4823b6ae37931b776e8381676dc9141999909b3d7","3e4ab0e8e96e968ac84a2484104892c881ded1757acd81b5e969b6229851f54c","d43a36641f5812794a3b4a941e3dfb5fa070f9fff64cfd6daf5291cb962c8b05","32468df81188116040636844517fbe4f67fc37af4fe565c7592353df8e11d2f3","c12b5f9bf412c891cad443ef00a378ad2d3f1301f140943414308665a7d90af8","cf1b65c20036885ed99ce1c18aa0a0ed66f42acd6d415e99b48a8fa4105c23ed","173aec8be1be982c8244df6f94880d77a9b766c8c1ec3eb0af662c8dc6da7f2e","08188020373062e07955835a996fda1aff97a89e57d469edc6b9210bd9c8926f","cad5c2c0085a3e3b74f58aa199944b25ed8d24f93f51c99ebe2463e4f1694785","3e2d93a797c41ab081fbcd80e959b7c30d5d1c358f091c22a6ebe416ef7c5e19","c440df5735a3305e7db118bf821efb597c8318910861f735372846db9f7b506b","d6d8de719a75e5d2ed9dd9d6a99296d1337259e1c96166579db50797edd72ede","32b4c732e183bf5d123f88d526ac21b71a681089c18d2d761be342df31179d94","212d16020e7dce1b5509f3b9813de73612de57c6a3d74536714eb88787b96dc3","1a63d5212341783aa49cf78d667bf2a6cd03208ea09620b2fc3e647ae07f4e0d","84ea58841272970e6e3247cba4dbb326cf22764c2f4bbcb03f1c634315bbbcb5","86f9fbecdd848d02c90f861cc9839d8f3449c518a77e77ea65362f6a4126c63b","ecdaf317a4a1e7e3540e2f1b6aae38acd78dd99d564b52f98eea7358ac74416d","c30430960f1a0552b3cdaf1ef8164fdd4f289c782a8912df5180d57bc9ddfc03","a348081c01502c9f87d39d9e4b5dd58e1111b34c62686d6e569c595a0417bb35","eff69aee13c76502a16b756cde9c451fb4b5c4234052f3b3bee9dbfe92e1b1d5","9943f44400939f4ff008a882ff71162f70ba0c2f735c9743fd4645ef5c925fc4","b7836eba6c5173a1683aee8aa1771ff339e795cb9c21411590edb910274febe4","6fe447aa7e6fabc4f6c536f2997e3b1116b7f73dbe5bf3fc8d958bad434e4a84","15d3908d453d14be4dae760122ed5d74ad789a19f1fec2edd4034e57217436e9","ef00bc701f382da70870ab7721ed8f6552a38e332e60370b93cf340b6470845c","18891a02fa046e57b43a543dddc7212086fcb04ae6c8e8f28f8605dd3ccf57ed",{"version":"5980a888624dce1b0937a0d21c623f97056501bb61a8da29cbe07f1a0be2c9a8","affectsGlobalScope":true},"590a41ccab332c66a6aa62746612b03ceb2e92cc1da58c140e90fb7ff6e8c851","dc1d2996f23fe7f0da0b2c843e05c0ac170a36b51da11e58de089d344de93c3b","78ff01b50e7e9761f239527ec70b96171bccc28a08d909243e193db03b6f6983","ed18472ee2247563a26d754dd4c8bd66383013df13ce7c2927b03cab1a27b7e8","28ac9ac1fa163e5f2321fafa49b9931908c0076216ed3c82646d79abdf79775e","07dd4bed8ddab685f82a2125bf3aa41b42e36f28c16a5aec7357b727649076fb","fc15a2216f29b825747c0c3a54d6989518dd0f4aa0b580520e5526b4a47bec8f","c656d5baf3d4a8f358fc083db04b0fda8cb8503a613a9ba42327ecbd7909773c","397c2c81eaeae1388f7459699d7606feecfc304b212eb9113407c1315746a578","c2d923e9adc26a3efe5186f3a4a72413d24c80f03b306c68c30fa146690fb101","d34782833b7d5f72486a5fb926d3d96198706ed76aeaf1d435c748ebcf9169fc","b093e56054755189dd891ea832dec40d729d110a0a3f432fff5ea5ab1078cdde","98affe620e6230a3888b445c32376e4edbf6b1b376a71f2bf9c07bee11fcdd65","1e05491bef32ff48393d605d557152735899da3d9b111ba3588a1800f2927f4a","1ff7813974b1b9a0524c1e5a99aa52a05e79fc7df7749ada75ded8c53fe1b7e0","cd8c517f54d4ff3475755b290d741c8799df3265ce73d454d8fafe423f8ff749","bf431147b104ae92d61de6b43e9f25d27e8d3eaeaffd612e0c0d3bb8e2423926","f0f21604ae8f880c0ab529f00303806fdeadc943e32a25ca063fc8fea0fa063c","8dc4f45212fba9381e1674e8bd934a588730efbb8a6681b661cad8cd09b081c5",{"version":"52bf774bd30177ebb3e450c808d8d46f67896848a942e6203ae78b65b33d0106","signature":"688c437017a53e69ff66aac2036a0d7f6263082f676a408c9998cbd87ea2ec73"},{"version":"8b6ee36fd764378c62dca37041c5a12fd5a77b9e853c78908b7ed1c90dc149e4","signature":"03846acca031c757d910dbc017d846c87574faf90bde82316fb9b8537896d5ee"},{"version":"0d089d33f31b56697d142aa7395738c0323cf761b4c79fd6bf65a54ab1ddf02f","signature":"027c87e1cb049497d4f185bc9b922ce91cad59832da8faf3411e6b298b9deb78"},{"version":"ec0982b9e7d6c1b6c80e2829c5909eefb9ecee687e60621e0bb937e8ad5d1d43","signature":"8478b617a5be940f1b4b4d19d2fc6149c21ac69c4a7e00c8a7db2c2c21aa2274"},{"version":"84c5fc9d0d22f4566791b88d5fc2c24f56508b50c9ce894ac549ebaa158b1fca","signature":"677ea66c6fa02f1cebf82df19f416a8302c7a7d10e2de265b162760fcd865eef"},{"version":"8455135ea42310a73404fa2513e212d170af1191584061f583ec1e0f6b75dd91","signature":"83e4298f0b6834e955ee6a76569d3e5b3192065d47f1daf4535bb9edb16e88cb"},{"version":"73529962207605bdc5285d5e745919b8d57b776daa0f22a14b75cd8a92d63af9","signature":"422fcd2a7fd87f05efdfaa6eab382ca607d5d54e1f175ba2efccd4aacd5433ef"},{"version":"ebe927d8a9739c9d32ef4df28c1c36cf82daa9abba7cdf3f79e320c5e99e99d8","signature":"2421f9c6b1ecedd50818719090a77e9d2748c2339c33f3d4817beebf7a39d211"},{"version":"165c56632fea46c85e2a62f1b4eae600b846ea0deacd3c137fde9bacb845c30e","signature":"79bf9e3846b43e706d181c00f3c1c50ae8fc60e587c97a16e521adc150317624"},{"version":"866e1d2cf16a41851b056a2cc0cdc5f0f00df0435376cc2c723a8c609f61fbd0","signature":"5f5bbca60f0bfed6ff714163c4e962a5e260e59db754c89ee2063403accd03e3"},{"version":"ecfa1b63e3829b310ac968b2cc1cc7016ba76ffb8532439aebecbcbc57173b99","signature":"2f1dda63ade2bd085704674523b56ede942bc8c2c37fe8ed9b9b0fdfd69b1262"},{"version":"51d2f746d7e599a5549f5a946565934b4556bb9155be1eed2c474e25f1474872","signature":"c15585fe8935ed5cfedec39b7d41ec49990973f40faaba4b3e14278861643d79"},{"version":"b1d1378906c54a2f4d230ad69d212beedd2552afe3f7ad171b7eacb4cecc26d7","signature":"f9e60e8f79a7f606f19e02e2d39a24995719767dbe587f564f970bb24e3ca29d"},{"version":"f5a156e5b3783ea0399ac0326b7ab31a00e8874c5fa9b5e26fac217da8b5adfd","signature":"cfa7179e0306fc04d93f062c96e7ae8bad58d0cc4a7aa0dd4494ff9d262b101c"},{"version":"3c9fefca9303bcfd5712de11a3cbda20b3d6e85f29019bc75cab24690fb0f90d","signature":"306683152ff5a6038cf05b03ddff85a15b1bc8e18ef268aad26b02fd8e0e8b9d"},"a11c3e55d22d6379fe0949793e2638a6b43aa6e9def4f7452c3e352a296ef8da",{"version":"2770956c9437d7d66650084891c559ff6bb94200b7e2820940fd5d5dd0efa489","signature":"2faaf4f254008bf5be0e145be10dba35dccfac7116e9083f9d697a476a8e7076"},{"version":"ceee917fd557b841b93f7e13103dfdad79d38fe9962408f538f27db03dc9368d","signature":"15003ff6ed10d259dca775c7e5f7a64b272a9c370b6085db2d42a2d4a1d81579"},{"version":"a1691ae6d70af82f3e26d9e2e021dc5063021bd9c335bfdb40dc97d3574d1b3f","signature":"cd1c566b611a70ff987a79d0465da67649a8ed7e7668feddfcdf6dceb01c09a8"},{"version":"a105417dd540f1a400f0665c877e5d7e48e2efe08f01c2e5c7272256e644faa5","signature":"b3a6ee392811d6cddb38378ebaa373d4a39aa7dc4ecac73497c6b33627e6430b"},{"version":"581b44cf6122e3ad267d6bda2428c214fef3d38b6d7249df9fa6bc240a880a78","signature":"0ca09d92d6469d906a3d1c7192a6294c7f65b75f4f7eb8072bbd1b68c7f021e1"},{"version":"2e6426c1a1ff8561aa5f01d9398426bf06e55307f688464939de3196f0d4c143","signature":"5357bd09c9816a9765e617f86a9b49f85133d0bc0f9c5e29e834f2f8e6d52acb"},{"version":"508279c48de5627ae6c30a0aee01f4391bf32450335d7f09d5dd82acbc4d13c5","signature":"11d546a505f70f9c5f8092916027d8045c280a817b709fcaf2c4e63fa026c89c"},{"version":"557f2e0a4e5ac8a59b7c3068b2b30162fb963d72d50152482ab8c414e81caf37","signature":"008eaae28119118f1c589a1e29ea7fd17277f2280d2d3bfddeacd71fd1671bb5"},{"version":"f45c172ca54fb28d64b2dd04e495f17038034e20f37bd286a9f3eeb286cf1388","signature":"75a8761564c8fc5581b062dd339ea698921baf60e52eae055c8177dfa89eba90"},{"version":"ea696a0517ad69afea472e47eb1f904aba1667f54d4557eb98b8c766469d56a2","signature":"7e125d9abc19f62d1480f6c04a45d7bb2c89153316245ae8b8e5a0234b078c4e"},{"version":"902937c505f88d8b5b32829b4c14243eb740013fd0e2f58e6485324bbfe197a6","signature":"dc7de7650e5a64fc010387db18e84d48fe8f562dbd9caac01e54f83681ac976b"},{"version":"842accda78bb1b6f494f264aae307b84d933486d607e91f6e1d3a4d2e4851783","signature":"430d9683c8e5aaab71f0e3b271c4240cd5120a91191f953722985499af51d7e6"},{"version":"45b1a895868587c78a2ddff937967669b4e1968ea72c01e1c2b6dd5993f53b36","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"99cab9373415bac71e9d2c84279782c0a361b59551d0ca8dfaee8d4c08ed3247","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"ba1fed463e8a21ffddb67a53df3f0d818b351991723736e167d065e2de1c7183",{"version":"22e311fec88bcc49b2b1fb3c9a7c082cd84b3388c9bcc7b9ef08253f6fa74e26","affectsGlobalScope":true},"c186097fd9b86681981cdeba08c0b6bbfcd8b562ab490c25656d85fef8f10c79","0b0c483e991e81c3f26e5f2da53ff26a15994c98c8b89cda1e4156dfc2428111","3340eb7b30bdee5f0349107d4068fd6f2f4712e11a2ba68e203b2f2489350317",{"version":"2000d60bd5195730ffff0d4ce9389003917928502c455ed2a9e296d3bf1a4b42","signature":"56335d3c9b867cc8654c05e633c508dd8de0038157f9958eb8794b7c123bb90e"},{"version":"dfceb5b9355a4a9002a7c291b1c3315511977c73cb23d9c123a72567783a18c0","signature":"b1802850887a3ea11a06df1fc1c65c6579332eefba1e63b3967a73dc937a2574"},{"version":"384fc0e3fa5966f524c96f1782b9d7a005346ba1621c43d0d1d819bf39077fbc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7fde517b3f03bb21ec3a46ba5f85c6797f8abf27deacb862183126e2f072788e","signature":"8b310edcfec83da25bc4f3adb20a7583bc5dae56d7d06c5b1431b76d390c1b72"},{"version":"894d93831d2afcd26f7362347e4960dd6d53f4153dad08813f3670e1327e387c","signature":"b1802850887a3ea11a06df1fc1c65c6579332eefba1e63b3967a73dc937a2574"},{"version":"8f9eac2c3ae305c25d4ffeff800b9811c8d3ec6a11b142fe96d08a2bc40f6440","signature":"08d6a2d1b004bbcac4249cd5baf6e9c662adc6139939c266b42e0422ef0c68b3"},{"version":"ac8980bdd810c30c444b59cca584c9b61d5ab274fa9474d778970537f3090240","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1c024431c672cf9c6dcdb4d30c5b625435d81a5423b9d45e8de0082e969af8a8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"eee1b57475023853cd09dd79b8d0d6639b6b82c3baee5863c2f2022b710f4102","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"377ba49d29102653a4b0c72b3870f9c599575df7db3a3fae7a21be5327ff84e2","signature":"c47f5db4df0a5031ed84bc6ee192c412b9e2d4d5e94681af77ccdcc25c851839"},{"version":"377ba49d29102653a4b0c72b3870f9c599575df7db3a3fae7a21be5327ff84e2","signature":"c47f5db4df0a5031ed84bc6ee192c412b9e2d4d5e94681af77ccdcc25c851839"},{"version":"39833acf7547216b2f31b2279dcfec3ed1359dec8adc9d1cb87c695ebf9bff94","signature":"7292d4dc9dac6d815dc30245a4a4a4959845d3a2b84ba0166857e4b23f2d033f"},{"version":"39833acf7547216b2f31b2279dcfec3ed1359dec8adc9d1cb87c695ebf9bff94","signature":"7292d4dc9dac6d815dc30245a4a4a4959845d3a2b84ba0166857e4b23f2d033f"},{"version":"529dd364d169ab3dbbb177ccdc4987c4a6f69187f553f3d36460ab65879ad998","signature":"3919e9d5911da2254732c31942e2cdc0057056ebfc2a16d34041c76a9b58d447"},{"version":"ebea587ca6477b9db29baf75d359924c55ab490fecdc38d7c0f16e589f0d27f9","signature":"0688c25f38e78e052338305d23046c7841074b3da5709a8f9e598ed705b9932b"},{"version":"de411013305dbe5c7a1ac13d2ea16dc36e52e6efd255b4e912fe53862058c649","signature":"2faaf4f254008bf5be0e145be10dba35dccfac7116e9083f9d697a476a8e7076"},"e432b56911b58550616fc4d54c1606f65fe98c74875b81d74601f5f965767c60","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","a46a2e69d12afe63876ec1e58d70e5dbee6d3e74132f4468f570c3d69f809f1c","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","dd5647a9ccccb2b074dca8a02b00948ac293091ebe73fdf2e6e98f718819f669","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"712ba0d43b44d144dfd01593f61af6e2e21cfae83e834d297643e7973e55ed61","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","98a3ebfa494b46265634a73459050befba5da8fdc6ca0ef9b7269421780f4ff3","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","7980bf9d2972585cdf76b5a72105f7817be0723ccb2256090f6335f45b462abe","301d7466eb591139c7d456958f732153b3400f3243f68d3321956b43a64769e9","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2",{"version":"2abad7477cf6761b55c18bea4c21b5a5dcf319748c13696df3736b35f8ac149e","affectsGlobalScope":true},"d38e588a10943bbab1d4ce03d94759bf065ff802a9a72fc57aa75a72f1725b71","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","6209c901f30cc321f4b86800d11fad3d67e73a3308f19946b1bc642af0280298","60aaac5fb1858fbd4c4eb40e01706eb227eed9eca5c665564bd146971280dbd3","74b0245c42990ed8a849df955db3f4362c81b13f799ebc981b7bec2d5b414a57","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","4266ccd2cf1d6a281efd9c7ddf9efd7daecf76575364148bd233e18919cac3ed","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","105b9a2234dcb06ae922f2cd8297201136d416503ff7d16c72bfc8791e9895c1"],"options":{"composite":true,"declaration":true,"declarationMap":true,"downlevelIteration":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"jsx":2,"noEmitOnError":false,"noImplicitAny":true,"noUnusedLocals":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strictNullChecks":true,"target":1,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"fileIdsList":[[211,260],[260],[260,273],[53,190,260],[192,194,260],[190,192,193,260],[53,260],[53,140,260],[69,260],[211,212,213,214,215,260],[211,213,260],[233,260,267],[260,269],[260,270],[260,275,277],[217,260],[220,260],[221,226,260],[222,232,233,240,249,259,260],[222,223,232,240,260],[224,260],[225,226,233,241,260],[226,249,256,260],[227,229,232,240,260],[228,260],[229,230,260],[231,232,260],[232,260],[232,233,234,249,259,260],[232,233,234,249,260],[235,240,249,259,260],[232,233,235,236,240,249,256,259,260],[235,237,249,256,259,260],[217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266],[232,238,260],[239,259,260],[229,232,240,249,260],[241,260],[242,260],[220,243,260],[244,258,260,264],[245,260],[246,260],[232,247,260],[247,248,260,262],[232,249,250,251,260],[249,251,260],[249,250,260],[252,260],[253,260],[232,254,255,260],[254,255,260],[226,240,249,256,260],[257,260],[240,258,260],[221,235,246,259,260],[226,260],[249,260,261],[260,262],[260,263],[221,226,232,234,243,249,259,260,262,264],[249,260,265],[76,77,260],[53,58,64,65,68,71,72,73,76,260],[74,260],[84,260],[53,57,82,260],[53,54,57,58,62,75,76,260],[53,76,105,106,260],[53,54,57,58,62,76,260],[82,91,260],[53,54,62,75,76,93,260],[53,55,58,61,62,65,75,76,260],[53,54,57,62,76,260],[53,54,57,62,260],[53,54,55,58,60,62,63,75,76,260],[53,76,260],[53,75,76,260],[53,54,57,58,61,62,75,76,82,93,260],[53,55,58,260],[53,54,57,60,75,76,93,103,260],[53,54,60,76,103,105,260],[53,54,57,60,62,93,103,260],[53,54,55,58,60,61,75,76,93,260],[58,260],[53,55,58,59,60,61,75,76,260],[82,260],[83,260],[53,54,55,57,58,61,66,67,75,76,260],[58,59,260],[53,64,65,70,75,76,260],[53,56,64,70,75,76,260],[53,58,62,260],[53,118,260],[53,57,260],[57,260],[76,260],[75,260],[66,74,76,260],[53,54,57,58,61,75,76,260],[128,260],[53,56,57,260],[91,260],[44,45,46,47,48,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,260],[140,260],[46,260],[49,50,51,52,260],[232,235,237,240,259,260,267],[260,287],[260,275],[260,272,276],[260,274],[151,260],[53,141,142,143,144,146,147,148,149,150,157,260],[53,140,147,150,151,260],[143,144,260],[142,143,144,147,260],[143,260],[155,260],[157,260],[144,260],[53,144,260],[141,142,143,144,145,146,147,149,150,151,152,153,154,156,260],[149,260],[158,260],[43,140,166,177,260],[43,53,140,157,159,162,163,164,166,168,169,170,171,172,174,176,260],[43,53,140,162,165,260],[43,157,166,167,168,260],[43,53,140,165,166,168,170,171,177,260],[43,53,260],[43,167,260],[43,168,260],[43,53,140,157,162,163,166,172,191,195,260],[43,140,157,177,195,260],[43,53,140,157,177,179,191,198,260],[43,200,260],[43,157,170,171,173,260],[43,53,140,166,177,191,194,260],[43,53,140,166,179,191,194,260],[43,53,177,183,194,195,260],[43,260],[43,181,260],[43,53,177,180,181,182,183,260],[43,53,157,162,177,260],[43,53,140,180,182,184,260],[43,162,163,165,166,177,178,179,180,182,183,184,185,186,260],[43,53,140,160,161,260],[43,140,160,260],[43,140,260],[43,53,140,260],[43,157,260],[43,157,175,260],[43,53,140,157,175,260],[43,140,157,166,260],[43,140,157,170,171,260],[43,140,165,173,177,260],[53,140,166],[53,157,166,169],[53,140,162,165],[157,166],[53,140,166,177],[53],[191],[53,166,177,191,194],[53,166,179,191,194],[53,177,182,183,187],[53,162,177],[140,184],[162,163,165,166,177,178,179,180,182,183,184,185,186],[53,140],[140,160],[140],[157],[53,157],[140,157,166],[140,157],[177]],"referencedMap":[[213,1],[211,2],[274,3],[192,4],[193,5],[194,6],[191,4],[190,7],[69,8],[70,9],[273,2],[216,10],[212,1],[214,11],[215,1],[268,12],[269,2],[270,13],[271,14],[278,15],[279,2],[280,2],[217,16],[218,16],[220,17],[221,18],[222,19],[223,20],[224,21],[225,22],[226,23],[227,24],[228,25],[229,26],[230,26],[231,27],[232,28],[233,29],[234,30],[219,2],[266,2],[235,31],[236,32],[237,33],[267,34],[238,35],[239,36],[240,37],[241,38],[242,39],[243,40],[244,41],[245,42],[246,43],[247,44],[248,45],[249,46],[251,47],[250,48],[252,49],[253,50],[254,51],[255,52],[256,53],[257,54],[258,55],[259,56],[260,57],[261,58],[262,59],[263,60],[264,61],[265,62],[281,2],[282,2],[51,2],[78,63],[79,2],[74,64],[80,2],[81,65],[85,66],[86,2],[87,67],[88,68],[107,69],[89,2],[90,70],[92,71],[94,72],[95,73],[96,74],[63,74],[97,75],[64,76],[98,77],[99,68],[100,78],[101,79],[102,2],[60,80],[104,81],[106,82],[105,83],[103,84],[65,75],[61,85],[62,86],[108,2],[91,87],[83,87],[84,88],[68,89],[66,2],[67,2],[109,87],[110,90],[111,2],[112,71],[71,91],[72,92],[113,2],[114,93],[115,2],[116,2],[117,2],[119,94],[120,2],[56,7],[121,7],[122,95],[123,96],[124,2],[125,97],[127,97],[126,97],[76,98],[75,99],[77,97],[73,100],[128,2],[129,101],[58,102],[130,66],[131,66],[132,103],[133,87],[118,2],[134,2],[135,2],[136,2],[137,7],[138,2],[82,2],[140,104],[44,2],[45,105],[46,106],[48,2],[47,2],[93,2],[54,2],[139,105],[55,2],[59,85],[57,7],[283,7],[49,2],[53,107],[284,2],[52,2],[285,2],[286,108],[287,2],[288,109],[272,2],[50,2],[276,110],[277,111],[275,112],[149,2],[154,113],[151,114],[158,115],[147,116],[148,117],[141,2],[142,2],[145,116],[144,118],[156,119],[155,120],[153,116],[143,121],[146,122],[157,123],[175,124],[152,2],[150,7],[159,125],[43,2],[8,2],[9,2],[11,2],[10,2],[2,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[3,2],[4,2],[23,2],[20,2],[21,2],[22,2],[24,2],[25,2],[26,2],[5,2],[27,2],[28,2],[29,2],[30,2],[6,2],[31,2],[32,2],[33,2],[34,2],[7,2],[35,2],[40,2],[41,2],[36,2],[37,2],[38,2],[39,2],[1,2],[42,2],[178,126],[177,127],[166,128],[169,129],[179,130],[164,131],[188,132],[189,133],[196,134],[197,135],[199,136],[201,137],[202,138],[195,139],[198,140],[203,141],[180,142],[182,143],[181,142],[184,144],[183,145],[185,142],[186,146],[170,142],[171,142],[172,142],[187,147],[162,148],[204,149],[205,149],[161,149],[160,131],[206,150],[207,150],[163,151],[208,131],[209,152],[210,152],[176,153],[200,154],[167,142],[168,155],[165,142],[173,156],[174,157]],"exportedModulesMap":[[213,1],[211,2],[274,3],[192,4],[193,5],[194,6],[191,4],[190,7],[69,8],[70,9],[273,2],[216,10],[212,1],[214,11],[215,1],[268,12],[269,2],[270,13],[271,14],[278,15],[279,2],[280,2],[217,16],[218,16],[220,17],[221,18],[222,19],[223,20],[224,21],[225,22],[226,23],[227,24],[228,25],[229,26],[230,26],[231,27],[232,28],[233,29],[234,30],[219,2],[266,2],[235,31],[236,32],[237,33],[267,34],[238,35],[239,36],[240,37],[241,38],[242,39],[243,40],[244,41],[245,42],[246,43],[247,44],[248,45],[249,46],[251,47],[250,48],[252,49],[253,50],[254,51],[255,52],[256,53],[257,54],[258,55],[259,56],[260,57],[261,58],[262,59],[263,60],[264,61],[265,62],[281,2],[282,2],[51,2],[78,63],[79,2],[74,64],[80,2],[81,65],[85,66],[86,2],[87,67],[88,68],[107,69],[89,2],[90,70],[92,71],[94,72],[95,73],[96,74],[63,74],[97,75],[64,76],[98,77],[99,68],[100,78],[101,79],[102,2],[60,80],[104,81],[106,82],[105,83],[103,84],[65,75],[61,85],[62,86],[108,2],[91,87],[83,87],[84,88],[68,89],[66,2],[67,2],[109,87],[110,90],[111,2],[112,71],[71,91],[72,92],[113,2],[114,93],[115,2],[116,2],[117,2],[119,94],[120,2],[56,7],[121,7],[122,95],[123,96],[124,2],[125,97],[127,97],[126,97],[76,98],[75,99],[77,97],[73,100],[128,2],[129,101],[58,102],[130,66],[131,66],[132,103],[133,87],[118,2],[134,2],[135,2],[136,2],[137,7],[138,2],[82,2],[140,104],[44,2],[45,105],[46,106],[48,2],[47,2],[93,2],[54,2],[139,105],[55,2],[59,85],[57,7],[283,7],[49,2],[53,107],[284,2],[52,2],[285,2],[286,108],[287,2],[288,109],[272,2],[50,2],[276,110],[277,111],[275,112],[149,2],[154,113],[151,114],[158,115],[147,116],[148,117],[141,2],[142,2],[145,116],[144,118],[156,119],[155,120],[153,116],[143,121],[146,122],[157,123],[175,124],[152,2],[150,7],[159,125],[43,2],[8,2],[9,2],[11,2],[10,2],[2,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[3,2],[4,2],[23,2],[20,2],[21,2],[22,2],[24,2],[25,2],[26,2],[5,2],[27,2],[28,2],[29,2],[30,2],[6,2],[31,2],[32,2],[33,2],[34,2],[7,2],[35,2],[40,2],[41,2],[36,2],[37,2],[38,2],[39,2],[1,2],[42,2],[178,158],[177,159],[166,160],[169,161],[179,162],[164,163],[196,164],[199,164],[195,165],[198,166],[184,167],[183,168],[186,169],[187,170],[162,171],[204,172],[205,172],[161,172],[160,163],[206,173],[207,173],[163,171],[208,163],[209,174],[210,174],[176,174],[200,175],[168,176],[173,177],[174,178]],"semanticDiagnosticsPerFile":[213,211,274,192,193,194,191,190,69,70,273,216,212,214,215,268,269,270,271,278,279,280,217,218,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,219,266,235,236,237,267,238,239,240,241,242,243,244,245,246,247,248,249,251,250,252,253,254,255,256,257,258,259,260,261,262,263,264,265,281,282,51,78,79,74,80,81,85,86,87,88,107,89,90,92,94,95,96,63,97,64,98,99,100,101,102,60,104,106,105,103,65,61,62,108,91,83,84,68,66,67,109,110,111,112,71,72,113,114,115,116,117,119,120,56,121,122,123,124,125,127,126,76,75,77,73,128,129,58,130,131,132,133,118,134,135,136,137,138,82,140,44,45,46,48,47,93,54,139,55,59,57,283,49,53,284,52,285,286,287,288,272,50,276,277,275,149,154,151,158,147,148,141,142,145,144,156,155,153,143,146,157,175,152,150,159,43,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,31,32,33,34,7,35,40,41,36,37,38,39,1,42,178,177,166,169,179,164,188,189,196,197,199,201,202,195,198,203,180,182,181,184,183,185,186,170,171,172,187,162,204,205,161,160,206,207,163,208,209,210,176,200,167,168,165,173,174]},"version":"4.7.4"} \ No newline at end of file diff --git a/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutView.swift b/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutView.swift -index f18e92c..f166553 100644 +index f18e92c..71b63dc 100644 --- a/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutView.swift +++ b/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutView.swift @@ -4,31 +4,35 @@ import UIKit @@ -973,7 +973,7 @@ index f18e92c..f166553 100644 } else { assertionFailure("CellRendererComponent outer view should always be CellContainer. Learn more here: https://shopify.github.io/flash-list/docs/usage#cellrenderercomponent.") return nil -@@ -106,12 +128,16 @@ import UIKit +@@ -106,7 +128,7 @@ import UIKit /// Checks for overlaps or gaps between adjacent items and then applies a correction. /// Performance: RecyclerListView renders very small number of views and this is not going to trigger multiple layouts on the iOS side. @@ -982,16 +982,7 @@ index f18e92c..f166553 100644 var maxBound: CGFloat = 0 var minBound: CGFloat = CGFloat(Int.max) var maxBoundNextCell: CGFloat = 0 - let correctedScrollOffset = scrollOffset - (horizontal ? frame.minX : frame.minY) - lastMaxBoundOverall = 0 -+ if cellContainers.count == 1 { -+ let firstCellContainer = cellContainers[0] -+ lastMaxBoundOverall = horizontal ? firstCellContainer.frame.maxX : firstCellContainer.frame.maxY -+ } - cellContainers.indices.dropLast().forEach { index in - let cellContainer = cellContainers[index] - let cellTop = cellContainer.frame.minY -@@ -192,7 +218,7 @@ import UIKit +@@ -192,7 +214,7 @@ import UIKit lastMinBound = minBound } @@ -1000,7 +991,7 @@ index f18e92c..f166553 100644 lastMaxBoundOverall = max(lastMaxBoundOverall, horizontal ? currentCell.frame.maxX : currentCell.frame.maxY, horizontal ? nextCell.frame.maxX : nextCell.frame.maxY) } -@@ -217,7 +243,7 @@ import UIKit +@@ -217,7 +239,7 @@ import UIKit /// It's important to avoid correcting views outside the render window. An item that isn't being recycled might still remain in the view tree. If views outside get considered then gaps between unused items will cause algorithm to fail. func isWithinBounds( @@ -1009,18 +1000,21 @@ index f18e92c..f166553 100644 scrollOffset: CGFloat, renderAheadOffset: CGFloat, windowSize: CGFloat, -@@ -260,17 +286,18 @@ import UIKit +@@ -260,10 +282,10 @@ import UIKit } private func footerDiff() -> CGFloat { - if subviews.count == 0 { -- lastMaxBoundOverall = 0 ++ if viewsToLayout.count == 0 { + lastMaxBoundOverall = 0 - } else if subviews.count == 1 { - let firstChild = subviews[0] -- lastMaxBoundOverall = horizontal ? firstChild.frame.maxX : firstChild.frame.maxY -- } ++ } else if viewsToLayout.count == 1 { ++ let firstChild = viewsToLayout[0] + lastMaxBoundOverall = horizontal ? firstChild.frame.maxX : firstChild.frame.maxY + } let autoLayoutEnd = horizontal ? frame.width : frame.height - return lastMaxBoundOverall - autoLayoutEnd +@@ -271,6 +293,13 @@ import UIKit } private func footer() -> UIView? { diff --git a/patches/react-native-modal+13.0.1.patch b/patches/react-native-modal+13.0.1.patch index cc9c8531e3a3..5bfb2cc5f0b0 100644 --- a/patches/react-native-modal+13.0.1.patch +++ b/patches/react-native-modal+13.0.1.patch @@ -11,7 +11,7 @@ index b63bcfc..bd6419e 100644 buildPanResponder: () => void; getAccDistancePerDirection: (gestureState: PanResponderGestureState) => number; diff --git a/node_modules/react-native-modal/dist/modal.js b/node_modules/react-native-modal/dist/modal.js -index 80f4e75..5a58eae 100644 +index 80f4e75..3ba8b8c 100644 --- a/node_modules/react-native-modal/dist/modal.js +++ b/node_modules/react-native-modal/dist/modal.js @@ -75,6 +75,13 @@ export class ReactNativeModal extends React.Component { @@ -48,17 +48,7 @@ index 80f4e75..5a58eae 100644 if (this.didUpdateDimensionsEmitter) { this.didUpdateDimensionsEmitter.remove(); } -@@ -464,6 +479,9 @@ export class ReactNativeModal extends React.Component { - InteractionManager.clearInteractionHandle(this.interactionHandle); - this.interactionHandle = null; - } -+ if (this.state.isVisible) { -+ this.props.onModalHide(); -+ } - } - componentDidUpdate(prevProps) { - // If the animations have been changed then rebuild them to make sure we're -@@ -525,7 +543,7 @@ export class ReactNativeModal extends React.Component { +@@ -525,7 +540,7 @@ export class ReactNativeModal extends React.Component { } return (React.createElement(Modal, Object.assign({ transparent: true, animationType: 'none', visible: this.state.isVisible, onRequestClose: onBackButtonPress }, otherProps), this.makeBackdrop(), diff --git a/patches/react-native-web+0.19.12+001+initial.patch b/patches/react-native-web+0.19.9+001+initial.patch similarity index 98% rename from patches/react-native-web+0.19.12+001+initial.patch rename to patches/react-native-web+0.19.9+001+initial.patch index c77cfc7829ed..91ba6bfd59c0 100644 --- a/patches/react-native-web+0.19.12+001+initial.patch +++ b/patches/react-native-web+0.19.9+001+initial.patch @@ -1,9 +1,9 @@ diff --git a/node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js b/node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js -index e137def..c3e5054 100644 +index c879838..0c9dfcb 100644 --- a/node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js +++ b/node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js @@ -285,7 +285,7 @@ class VirtualizedList extends StateSafePureComponent { - // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller. + // $FlowFixMe[missing-local-annot] constructor(_props) { - var _this$props$updateCel; @@ -243,7 +243,7 @@ index e137def..c3e5054 100644 }); this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1; var innerRet = /*#__PURE__*/React.createElement(VirtualizedListContextProvider, { -@@ -1317,8 +1370,12 @@ class VirtualizedList extends StateSafePureComponent { +@@ -1307,8 +1360,12 @@ class VirtualizedList extends StateSafePureComponent { onStartReached = _this$props8.onStartReached, onStartReachedThreshold = _this$props8.onStartReachedThreshold, onEndReached = _this$props8.onEndReached, @@ -258,7 +258,7 @@ index e137def..c3e5054 100644 var _this$_scrollMetrics2 = this._scrollMetrics, contentLength = _this$_scrollMetrics2.contentLength, visibleLength = _this$_scrollMetrics2.visibleLength, -@@ -1358,16 +1415,10 @@ class VirtualizedList extends StateSafePureComponent { +@@ -1348,16 +1405,10 @@ class VirtualizedList extends StateSafePureComponent { // and call onStartReached only once for a given content length, // and only if onEndReached is not being executed else if (onStartReached != null && this.state.cellsAroundViewport.first === 0 && isWithinStartThreshold && this._scrollMetrics.contentLength !== this._sentStartForContentLength) { @@ -279,9 +279,9 @@ index e137def..c3e5054 100644 } // If the user scrolls away from the start or end and back again, -@@ -1433,6 +1484,11 @@ class VirtualizedList extends StateSafePureComponent { - */ - +@@ -1412,6 +1463,11 @@ class VirtualizedList extends StateSafePureComponent { + } + } _updateViewableItems(props, cellsAroundViewport) { + // If we have any pending scroll updates it means that the scroll metrics + // are out of date and we should not call any of the visibility callbacks. @@ -292,7 +292,7 @@ index e137def..c3e5054 100644 tuple.viewabilityHelper.onUpdate(props, this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, cellsAroundViewport); }); diff --git a/node_modules/react-native-web/src/vendor/react-native/VirtualizedList/index.js b/node_modules/react-native-web/src/vendor/react-native/VirtualizedList/index.js -index c7d68bb..459f017 100644 +index c7d68bb..43f9653 100644 --- a/node_modules/react-native-web/src/vendor/react-native/VirtualizedList/index.js +++ b/node_modules/react-native-web/src/vendor/react-native/VirtualizedList/index.js @@ -75,6 +75,10 @@ type ViewabilityHelperCallbackTuple = { diff --git a/patches/react-native-web+0.19.9+002+measureInWindow.patch b/patches/react-native-web+0.19.9+002+measureInWindow.patch new file mode 100644 index 000000000000..f41b4b3b48cb --- /dev/null +++ b/patches/react-native-web+0.19.9+002+measureInWindow.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/react-native-web/dist/exports/UIManager/index.js b/node_modules/react-native-web/dist/exports/UIManager/index.js +index 15b71d5..46b9e01 100644 +--- a/node_modules/react-native-web/dist/exports/UIManager/index.js ++++ b/node_modules/react-native-web/dist/exports/UIManager/index.js +@@ -77,7 +77,7 @@ var UIManager = { + measureInWindow(node, callback) { + if (node) { + setTimeout(() => { +- var _getRect2 = getRect(node), ++ var _getRect2 = node.getBoundingClientRect(), + height = _getRect2.height, + left = _getRect2.left, + top = _getRect2.top, diff --git a/patches/react-native-web+0.19.12+002+fixLastSpacer.patch b/patches/react-native-web+0.19.9+004+fixLastSpacer.patch similarity index 100% rename from patches/react-native-web+0.19.12+002+fixLastSpacer.patch rename to patches/react-native-web+0.19.9+004+fixLastSpacer.patch diff --git a/patches/react-native-web+0.19.12+003+image-header-support.patch b/patches/react-native-web+0.19.9+005+image-header-support.patch similarity index 95% rename from patches/react-native-web+0.19.12+003+image-header-support.patch rename to patches/react-native-web+0.19.9+005+image-header-support.patch index 6652f0345cc4..4652e22662f0 100644 --- a/patches/react-native-web+0.19.12+003+image-header-support.patch +++ b/patches/react-native-web+0.19.9+005+image-header-support.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/react-native-web/dist/exports/Image/index.js b/node_modules/react-native-web/dist/exports/Image/index.js -index 9649d27..3281cc8 100644 +index 95355d5..19109fc 100644 --- a/node_modules/react-native-web/dist/exports/Image/index.js +++ b/node_modules/react-native-web/dist/exports/Image/index.js @@ -135,7 +135,22 @@ function resolveAssetUri(source) { @@ -23,10 +23,10 @@ index 9649d27..3281cc8 100644 + return a.uri !== b.uri || JSON.stringify(a.headers) !== JSON.stringify(b.headers); +} +var BaseImage = /*#__PURE__*/React.forwardRef((props, ref) => { - var _ariaLabel = props['aria-label'], - accessibilityLabel = props.accessibilityLabel, + var ariaLabel = props['aria-label'], blurRadius = props.blurRadius, -@@ -238,16 +253,10 @@ var Image = /*#__PURE__*/React.forwardRef((props, ref) => { + defaultSource = props.defaultSource, +@@ -236,16 +251,10 @@ var Image = /*#__PURE__*/React.forwardRef((props, ref) => { } }, function error() { updateState(ERRORED); @@ -47,7 +47,7 @@ index 9649d27..3281cc8 100644 }); } function abortPendingRequest() { -@@ -279,10 +288,78 @@ var Image = /*#__PURE__*/React.forwardRef((props, ref) => { +@@ -277,10 +286,78 @@ var Image = /*#__PURE__*/React.forwardRef((props, ref) => { suppressHydrationWarning: true }), hiddenImage, createTintColorSVG(tintColor, filterRef.current)); }); @@ -129,7 +129,7 @@ index 9649d27..3281cc8 100644 ImageLoader.getSize(uri, success, failure); }; diff --git a/node_modules/react-native-web/dist/modules/ImageLoader/index.js b/node_modules/react-native-web/dist/modules/ImageLoader/index.js -index bc06a87..5a22819 100644 +index bc06a87..e309394 100644 --- a/node_modules/react-native-web/dist/modules/ImageLoader/index.js +++ b/node_modules/react-native-web/dist/modules/ImageLoader/index.js @@ -76,7 +76,7 @@ var ImageLoader = { diff --git a/patches/react-native-web+0.19.12+004+fixPointerEventDown.patch b/patches/react-native-web+0.19.9+006+fixPointerEventDown.patch similarity index 100% rename from patches/react-native-web+0.19.12+004+fixPointerEventDown.patch rename to patches/react-native-web+0.19.9+006+fixPointerEventDown.patch diff --git a/patches/react-native-web+0.19.12+005+osr-improvement.patch b/patches/react-native-web+0.19.9+007+osr-improvement.patch similarity index 100% rename from patches/react-native-web+0.19.12+005+osr-improvement.patch rename to patches/react-native-web+0.19.9+007+osr-improvement.patch diff --git a/src/CONST.ts b/src/CONST.ts index 7ffa60ef5f18..ed896fdc58be 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -73,18 +73,14 @@ const onboardingChoices = { type OnboardingPurposeType = ValueOf; const CONST = { + MERGED_ACCOUNT_PREFIX: 'MERGED_', DEFAULT_POLICY_ROOM_CHAT_TYPES: [chatTypes.POLICY_ADMINS, chatTypes.POLICY_ANNOUNCE, chatTypes.DOMAIN_ALL], // Note: Group and Self-DM excluded as these are not tied to a Workspace WORKSPACE_ROOM_TYPES: [chatTypes.POLICY_ADMINS, chatTypes.POLICY_ANNOUNCE, chatTypes.DOMAIN_ALL, chatTypes.POLICY_ROOM, chatTypes.POLICY_EXPENSE_CHAT], ANDROID_PACKAGE_NAME, - WORKSPACE_ENABLE_FEATURE_REDIRECT_DELAY: 100, - ANIMATED_HIGHLIGHT_ENTRY_DELAY: 50, - ANIMATED_HIGHLIGHT_ENTRY_DURATION: 300, - ANIMATED_HIGHLIGHT_START_DELAY: 10, - ANIMATED_HIGHLIGHT_START_DURATION: 300, - ANIMATED_HIGHLIGHT_END_DELAY: 800, - ANIMATED_HIGHLIGHT_END_DURATION: 2000, + ANIMATED_HIGHLIGHT_DELAY: 500, + ANIMATED_HIGHLIGHT_DURATION: 500, ANIMATED_TRANSITION: 300, ANIMATED_TRANSITION_FROM_VALUE: 100, ANIMATION_IN_TIMING: 100, @@ -95,7 +91,6 @@ const CONST = { // Multiplier for gyroscope animation in order to make it a bit more subtle ANIMATION_GYROSCOPE_VALUE: 0.4, BACKGROUND_IMAGE_TRANSITION_DURATION: 1000, - SCREEN_TRANSITION_END_TIMEOUT: 1000, ARROW_HIDE_DELAY: 3000, API_ATTACHMENT_VALIDATIONS: { @@ -151,7 +146,6 @@ const CONST = { DISPLAY_NAME: { MAX_LENGTH: 50, RESERVED_NAMES: ['Expensify', 'Concierge'], - EXPENSIFY_CONCIERGE: 'Expensify Concierge', }, GPS: { @@ -172,9 +166,6 @@ const CONST = { PULL_REQUEST_NUMBER, - // Regex to get link in href prop inside of component - REGEX_LINK_IN_ANCHOR: /]*?\s+)?href="([^"]*)"/gi, - MERCHANT_NAME_MAX_LENGTH: 255, REQUEST_PREVIEW: { @@ -209,12 +200,27 @@ const CONST = { // Sizes needed for report empty state background image handling EMPTY_STATE_BACKGROUND: { ASPECT_RATIO: 3.72, - OVERLAP: 60, SMALL_SCREEN: { IMAGE_HEIGHT: 300, + CONTAINER_MINHEIGHT: 200, + VIEW_HEIGHT: 240, }, WIDE_SCREEN: { IMAGE_HEIGHT: 450, + CONTAINER_MINHEIGHT: 500, + VIEW_HEIGHT: 390, + }, + MONEY_OR_TASK_REPORT: { + SMALL_SCREEN: { + IMAGE_HEIGHT: 300, + CONTAINER_MINHEIGHT: 280, + VIEW_HEIGHT: 240, + }, + WIDE_SCREEN: { + IMAGE_HEIGHT: 450, + CONTAINER_MINHEIGHT: 280, + VIEW_HEIGHT: 390, + }, }, }, @@ -685,7 +691,6 @@ const CONST = { REIMBURSEMENT_DEQUEUED: 'REIMBURSEMENTDEQUEUED', REIMBURSEMENT_REQUESTED: 'REIMBURSEMENTREQUESTED', // OldDot Action REIMBURSEMENT_SETUP: 'REIMBURSEMENTSETUP', // OldDot Action - REIMBURSEMENT_SETUP_REQUESTED: 'REIMBURSEMENTSETUPREQUESTED', // OldDot Action RENAMED: 'RENAMED', REPORT_PREVIEW: 'REPORTPREVIEW', SELECTED_FOR_RANDOM_AUDIT: 'SELECTEDFORRANDOMAUDIT', // OldDot Action @@ -929,7 +934,6 @@ const CONST = { RESIZE_DEBOUNCE_TIME: 100, }, SEARCH_TABLE_COLUMNS: { - RECEIPT: 'receipt', DATE: 'date', MERCHANT: 'merchant', FROM: 'from', @@ -961,7 +965,7 @@ const CONST = { DARK_CONTENT: 'dark-content', }, TRANSACTION: { - DEFAULT_MERCHANT: 'Expense', + DEFAULT_MERCHANT: 'Request', UNKNOWN_MERCHANT: 'Unknown Merchant', PARTIAL_TRANSACTION_MERCHANT: '(none)', TYPE: { @@ -1266,8 +1270,6 @@ const CONST = { EXPENSIFY_EMAIL_DOMAIN: '@expensify.com', }, - CONCIERGE_DISPLAY_NAME: 'Concierge', - INTEGRATION_ENTITY_MAP_TYPES: { DEFAULT: 'DEFAULT', NONE: 'NONE', @@ -1926,7 +1928,7 @@ const CONST = { EMOJI_NAME: /:[\w+-]+:/g, EMOJI_SUGGESTIONS: /:[a-zA-Z0-9_+-]{1,40}$/, AFTER_FIRST_LINE_BREAK: /\n.*/g, - LINE_BREAK: /\r\n|\r|\n/g, + LINE_BREAK: /\r|\n/g, CODE_2FA: /^\d{6}$/, ATTACHMENT_ID: /chat-attachments\/(\d+)/, HAS_COLON_ONLY_AT_THE_BEGINNING: /^:[^:]+$/, @@ -2060,7 +2062,7 @@ const CONST = { LOGIN_CHARACTER_LIMIT: 254, CATEGORY_NAME_LIMIT: 256, TAG_NAME_LIMIT: 256, - REPORT_NAME_LIMIT: 100, + REPORT_NAME_LIMIT: 256, TITLE_CHARACTER_LIMIT: 100, DESCRIPTION_LIMIT: 500, WORKSPACE_NAME_CHARACTER_LIMIT: 80, @@ -3492,6 +3494,7 @@ const CONST = { NAVIGATION: { TYPE: { + FORCED_UP: 'FORCED_UP', UP: 'UP', }, ACTION_TYPE: { @@ -3673,7 +3676,6 @@ const CONST = { TAX_OUT_OF_POLICY: 'taxOutOfPolicy', TAX_RATE_CHANGED: 'taxRateChanged', TAX_REQUIRED: 'taxRequired', - HOLD: 'hold', }, /** Context menu types */ @@ -3736,9 +3738,8 @@ const CONST = { WELCOME_VIDEO_URL: `${CLOUDFRONT_URL}/videos/intro-1280.mp4`, - ONBOARDING_INTRODUCTION: 'Let’s get you set up 🔧', ONBOARDING_CHOICES: {...onboardingChoices}, - ACTIONABLE_TRACK_EXPENSE_WHISPER_MESSAGE: 'What would you like to do with this expense?', + ONBOARDING_CONCIERGE: { [onboardingChoices.EMPLOYER]: '# Expensify is the fastest way to get paid back!\n' + @@ -4756,7 +4757,6 @@ const CONST = { MAX_TAX_RATE_DECIMAL_PLACES: 4, DOWNLOADS_PATH: '/Downloads', - DOWNLOADS_TIMEOUT: 5000, NEW_EXPENSIFY_PATH: '/New Expensify', ENVIRONMENT_SUFFIX: { @@ -4771,10 +4771,10 @@ const CONST = { }, SEARCH_RESULTS_PAGE_SIZE: 50, + SEARCH_BOTTOM_TAB_URL: '/Search_Bottom_Tab', SEARCH_DATA_TYPES: { TRANSACTION: 'transaction', - REPORT: 'report', }, REFERRER: { diff --git a/src/Expensify.tsx b/src/Expensify.tsx index 7a6203a44068..6205afb9c03c 100644 --- a/src/Expensify.tsx +++ b/src/Expensify.tsx @@ -1,4 +1,3 @@ -import {Audio} from 'expo-av'; import React, {useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState} from 'react'; import type {NativeEventSubscription} from 'react-native'; import {AppState, Linking} from 'react-native'; @@ -109,9 +108,6 @@ function Expensify({ const isAuthenticated = useMemo(() => !!(session?.authToken ?? null), [session]); const autoAuthState = useMemo(() => session?.autoAuthState ?? '', [session]); - const isAuthenticatedRef = useRef(false); - isAuthenticatedRef.current = isAuthenticated; - const contextValue = useMemo( () => ({ isSplashHidden, @@ -198,8 +194,7 @@ function Expensify({ // Open chat report from a deep link (only mobile native) Linking.addEventListener('url', (state) => { - // We need to pass 'isAuthenticated' to avoid loading a non-existing profile page twice - Report.openReportFromDeepLink(state.url, !isAuthenticatedRef.current); + Report.openReportFromDeepLink(state.url); }); return () => { @@ -211,11 +206,6 @@ function Expensify({ // eslint-disable-next-line react-hooks/exhaustive-deps -- we don't want this effect to run again }, []); - // This is being done since we want to play sound even when iOS device is on silent mode, to align with other platforms. - useEffect(() => { - Audio.setAudioModeAsync({playsInSilentModeIOS: true}); - }, []); - // Display a blank page until the onyx migration completes if (!isOnyxMigrated) { return null; diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts index a027a8493b41..ddf37fba2354 100755 --- a/src/ONYXKEYS.ts +++ b/src/ONYXKEYS.ts @@ -121,9 +121,6 @@ const ONYXKEYS = { /** Contains the users's block expiration (if they have one) */ NVP_BLOCKED_FROM_CONCIERGE: 'nvp_private_blockedFromConcierge', - /** Whether the user is blocked from chat */ - NVP_BLOCKED_FROM_CHAT: 'nvp_private_blockedFromChat', - /** A unique identifier that each user has that's used to send notifications */ NVP_PRIVATE_PUSH_NOTIFICATION_ID: 'nvp_private_pushNotificationID', @@ -191,9 +188,6 @@ const ONYXKEYS = { /** User's Expensify Wallet */ USER_WALLET: 'userWallet', - /** User's metadata that will be used to segmentation */ - USER_METADATA: 'userMetadata', - /** Object containing Onfido SDK Token + applicantID */ WALLET_ONFIDO: 'walletOnfido', @@ -616,12 +610,10 @@ type OnyxValuesMapping = { [ONYXKEYS.USER_LOCATION]: OnyxTypes.UserLocation; [ONYXKEYS.LOGIN_LIST]: OnyxTypes.LoginList; [ONYXKEYS.SESSION]: OnyxTypes.Session; - [ONYXKEYS.USER_METADATA]: OnyxTypes.UserMetadata; [ONYXKEYS.STASHED_SESSION]: OnyxTypes.Session; [ONYXKEYS.BETAS]: OnyxTypes.Beta[]; [ONYXKEYS.NVP_PRIORITY_MODE]: ValueOf; [ONYXKEYS.NVP_BLOCKED_FROM_CONCIERGE]: OnyxTypes.BlockedFromConcierge; - [ONYXKEYS.NVP_BLOCKED_FROM_CHAT]: string; [ONYXKEYS.NVP_PRIVATE_PUSH_NOTIFICATION_ID]: string; [ONYXKEYS.NVP_TRY_FOCUS_MODE]: boolean; [ONYXKEYS.NVP_HOLD_USE_EXPLAINED]: boolean; diff --git a/src/ROUTES.ts b/src/ROUTES.ts index 915563f26343..d36412f9622f 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -14,20 +14,10 @@ function getUrlWithBackToParam(url: TUrl, backTo?: string): return `${url}${backToParam}` as const; } -const PUBLIC_SCREENS_ROUTES = { +const ROUTES = { // If the user opens this route, we'll redirect them to the path saved in the last visited path or to the home page if the last visited path is empty. ROOT: '', - TRANSITION_BETWEEN_APPS: 'transition', - CONNECTION_COMPLETE: 'connection-complete', - VALIDATE_LOGIN: 'v/:accountID/:validateCode', - UNLINK_LOGIN: 'u/:accountID/:validateCode', - APPLE_SIGN_IN: 'sign-in-with-apple', - GOOGLE_SIGN_IN: 'sign-in-with-google', - SAML_SIGN_IN: 'sign-in-with-saml', -} as const; -const ROUTES = { - ...PUBLIC_SCREENS_ROUTES, // This route renders the list of reports. HOME: 'home', @@ -63,11 +53,18 @@ const ROUTES = { getRoute: (accountID: string | number) => `a/${accountID}/avatar` as const, }, + TRANSITION_BETWEEN_APPS: 'transition', + VALIDATE_LOGIN: 'v/:accountID/:validateCode', + CONNECTION_COMPLETE: 'connection-complete', GET_ASSISTANCE: { route: 'get-assistance/:taskID', getRoute: (taskID: string, backTo: string) => getUrlWithBackToParam(`get-assistance/${taskID}`, backTo), }, + UNLINK_LOGIN: 'u/:accountID/:validateCode', + APPLE_SIGN_IN: 'sign-in-with-apple', + GOOGLE_SIGN_IN: 'sign-in-with-google', DESKTOP_SIGN_IN_REDIRECT: 'desktop-signin-redirect', + SAML_SIGN_IN: 'sign-in-with-saml', // This is a special validation URL that will take the user to /workspace/new after validation. This is used // when linking users from e.com in order to share a session in this app. @@ -91,7 +88,6 @@ const ROUTES = { SETTINGS_TIMEZONE_SELECT: 'settings/profile/timezone/select', SETTINGS_PRONOUNS: 'settings/profile/pronouns', SETTINGS_PREFERENCES: 'settings/preferences', - SETTINGS_SUBSCRIPTION: 'settings/subscription', SETTINGS_PRIORITY_MODE: 'settings/preferences/priority-mode', SETTINGS_LANGUAGE: 'settings/preferences/language', SETTINGS_THEME: 'settings/preferences/theme', @@ -879,7 +875,7 @@ const HYBRID_APP_ROUTES = { MONEY_REQUEST_SUBMIT_CREATE: '/submit/new/scan', } as const; -export {HYBRID_APP_ROUTES, getUrlWithBackToParam, PUBLIC_SCREENS_ROUTES}; +export {HYBRID_APP_ROUTES, getUrlWithBackToParam}; export default ROUTES; // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/src/SCREENS.ts b/src/SCREENS.ts index 4e7243d0eb2c..f74002312623 100644 --- a/src/SCREENS.ts +++ b/src/SCREENS.ts @@ -103,10 +103,6 @@ const SCREENS = { RESPONSE: 'Settings_ExitSurvey_Response', CONFIRM: 'Settings_ExitSurvey_Confirm', }, - - SUBSCRIPTION: { - ROOT: 'Settings_Subscription', - }, }, SAVE_THE_WORLD: { ROOT: 'SaveTheWorld_Root', diff --git a/src/components/AddressForm.tsx b/src/components/AddressForm.tsx index 9ad4643e834a..296ecce7d092 100644 --- a/src/components/AddressForm.tsx +++ b/src/components/AddressForm.tsx @@ -4,7 +4,6 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import type {MaybePhraseKey} from '@libs/Localize'; -import Navigation from '@libs/Navigation/Navigation'; import * as ValidationUtils from '@libs/ValidationUtils'; import CONST from '@src/CONST'; import type {Country} from '@src/CONST'; @@ -149,8 +148,6 @@ function AddressForm({ label={translate('common.addressLine', {lineNumber: 1})} onValueChange={(data: unknown, key: unknown) => { onAddressChanged(data, key); - // This enforces the country selector to use the country from address instead of the country from URL - Navigation.setParams({country: undefined}); }} defaultValue={street1} renamedInputKeys={{ diff --git a/src/components/AddressSearch/index.tsx b/src/components/AddressSearch/index.tsx index 17a2f6212447..31ccfc954513 100644 --- a/src/components/AddressSearch/index.tsx +++ b/src/components/AddressSearch/index.tsx @@ -263,7 +263,7 @@ function AddressSearch( } setIsFetchingCurrentLocation(false); - setLocationErrorCode(errorData?.code ?? null); + setLocationErrorCode(errorData.code); }, { maximumAge: 0, // No cache, always get fresh location info diff --git a/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx b/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx index 595e28acd3bc..0c8af3dfc826 100644 --- a/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx +++ b/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx @@ -7,7 +7,6 @@ import {ShowContextMenuContext, showContextMenuForReport} from '@components/Show import useNetwork from '@hooks/useNetwork'; import useThemeStyles from '@hooks/useThemeStyles'; import addEncryptedAuthTokenToURL from '@libs/addEncryptedAuthTokenToURL'; -import * as Browser from '@libs/Browser'; import fileDownload from '@libs/fileDownload'; import * as ReportUtils from '@libs/ReportUtils'; import * as Download from '@userActions/Download'; @@ -49,7 +48,7 @@ function BaseAnchorForAttachmentsOnly({style, source = '', displayName = '', dow return; } Download.setDownload(sourceID, true); - fileDownload(sourceURLWithAuth, displayName, '', Browser.isMobileSafari()).then(() => Download.setDownload(sourceID, false)); + fileDownload(sourceURLWithAuth, displayName).then(() => Download.setDownload(sourceID, false)); }} onPressIn={onPressIn} onPressOut={onPressOut} diff --git a/src/components/AnchorForCommentsOnly/BaseAnchorForCommentsOnly.tsx b/src/components/AnchorForCommentsOnly/BaseAnchorForCommentsOnly.tsx index 2212e7460a2a..99a0ee3bf683 100644 --- a/src/components/AnchorForCommentsOnly/BaseAnchorForCommentsOnly.tsx +++ b/src/components/AnchorForCommentsOnly/BaseAnchorForCommentsOnly.tsx @@ -6,9 +6,9 @@ import {StyleSheet} from 'react-native'; import PressableWithSecondaryInteraction from '@components/PressableWithSecondaryInteraction'; import Text from '@components/Text'; import Tooltip from '@components/Tooltip'; -import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; +import useWindowDimensions from '@hooks/useWindowDimensions'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import * as ReportActionContextMenu from '@pages/home/report/ContextMenu/ReportActionContextMenu'; import CONST from '@src/CONST'; @@ -30,7 +30,7 @@ function BaseAnchorForCommentsOnly({onPressIn, onPressOut, href = '', rel = '', [], ); - const {shouldUseNarrowLayout} = useResponsiveLayout(); + const {isSmallScreenWidth} = useWindowDimensions(); const linkProps: LinkProps = {}; if (onPress) { @@ -38,7 +38,7 @@ function BaseAnchorForCommentsOnly({onPressIn, onPressOut, href = '', rel = '', } else { linkProps.href = href; } - const defaultTextStyle = DeviceCapabilities.canUseTouchScreen() || shouldUseNarrowLayout ? {} : {...styles.userSelectText, ...styles.cursorPointer}; + const defaultTextStyle = DeviceCapabilities.canUseTouchScreen() || isSmallScreenWidth ? {} : {...styles.userSelectText, ...styles.cursorPointer}; const isEmail = Str.isValidEmail(href.replace(/mailto:/i, '')); return ( diff --git a/src/components/AttachmentModal.tsx b/src/components/AttachmentModal.tsx index af7f482198bb..de98ba79d23c 100644 --- a/src/components/AttachmentModal.tsx +++ b/src/components/AttachmentModal.tsx @@ -7,7 +7,6 @@ import type {OnyxEntry} from 'react-native-onyx'; import {useSharedValue} from 'react-native-reanimated'; import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; -import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; @@ -171,9 +170,8 @@ function AttachmentModal({ const [isConfirmButtonDisabled, setIsConfirmButtonDisabled] = useState(false); const [confirmButtonFadeAnimation] = useState(() => new Animated.Value(1)); const [isDownloadButtonReadyToBeShown, setIsDownloadButtonReadyToBeShown] = React.useState(true); - const {windowWidth} = useWindowDimensions(); - const {shouldUseNarrowLayout} = useResponsiveLayout(); const nope = useSharedValue(false); + const {windowWidth, isSmallScreenWidth} = useWindowDimensions(); const isOverlayModalVisible = (isReceiptAttachment && isDeleteReceiptConfirmModalVisible) || (!isReceiptAttachment && isAttachmentInvalid); const iouType = useMemo(() => (isTrackExpenseAction ? CONST.IOU.TYPE.TRACK : CONST.IOU.TYPE.SUBMIT), [isTrackExpenseAction]); @@ -488,14 +486,14 @@ function AttachmentModal({ propagateSwipe > - {shouldUseNarrowLayout && } + {isSmallScreenWidth && } downloadAttachment()} - shouldShowCloseButton={!shouldUseNarrowLayout} - shouldShowBackButton={shouldUseNarrowLayout} + shouldShowCloseButton={!isSmallScreenWidth} + shouldShowBackButton={isSmallScreenWidth} onBackButtonPress={closeModal} onCloseButtonPress={closeModal} shouldShowThreeDotsButton={shouldShowThreeDotsButton} @@ -555,7 +553,7 @@ function AttachmentModal({