Skip to content

Commit 1f8046d

Browse files
authored
Merge pull request Expensify#89108 from Expensify/claude-removeRedirectToExpensifyClassicModal
Remove showRedirectToExpensifyClassicModal logic
2 parents 45dc9df + 4b80682 commit 1f8046d

36 files changed

Lines changed: 35 additions & 672 deletions

src/ONYXKEYS.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -709,9 +709,6 @@ const ONYXKEYS = {
709709
/** Whether the user has denied the contact import permission prompt */
710710
HAS_DENIED_CONTACT_IMPORT_PROMPT: 'hasDeniedContactImportPrompt',
711711

712-
/** Keeps track of whether the "Confirm Navigate to Expensify Classic" modal is opened */
713-
IS_OPEN_CONFIRM_NAVIGATE_EXPENSIFY_CLASSIC_MODAL_OPEN: 'IsOpenConfirmNavigateExpensifyClassicModalOpen',
714-
715712
/** The transaction IDs to be highlighted when opening the Expenses search route page */
716713
TRANSACTION_IDS_HIGHLIGHT_ON_SEARCH_ROUTE: 'transactionIdsHighlightOnSearchRoute',
717714

@@ -1568,7 +1565,6 @@ type OnyxValuesMapping = {
15681565
[ONYXKEYS.NVP_REPORT_LAYOUT_GROUP_BY]: string;
15691566
[ONYXKEYS.NVP_REPORT_DETAILS_COLUMNS]: string[];
15701567
[ONYXKEYS.HAS_DENIED_CONTACT_IMPORT_PROMPT]: boolean | undefined;
1571-
[ONYXKEYS.IS_OPEN_CONFIRM_NAVIGATE_EXPENSIFY_CLASSIC_MODAL_OPEN]: boolean;
15721568
[ONYXKEYS.PERSONAL_POLICY_ID]: string;
15731569
[ONYXKEYS.TRANSACTION_IDS_HIGHLIGHT_ON_SEARCH_ROUTE]: Record<string, Record<string, boolean>>;
15741570
};

src/components/ConfirmNavigateExpensifyClassicModal/BaseConfirmNavigateExpensifyClassicModal.tsx

Lines changed: 0 additions & 48 deletions
This file was deleted.

src/components/ConfirmNavigateExpensifyClassicModal/index.native.tsx

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/components/ConfirmNavigateExpensifyClassicModal/index.tsx

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/components/Navigation/QuickCreationActionsBar/index.tsx

Lines changed: 3 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ import React, {useCallback, useMemo} from 'react';
55
import {View} from 'react-native';
66
import type {OnyxCollection, OnyxEntry} from 'react-native-onyx';
77
import Button from '@components/Button';
8-
import {ModalActions} from '@components/Modal/Global/ModalContext';
9-
import useConfirmModal from '@hooks/useConfirmModal';
108
import useCreateEmptyReportConfirmation from '@hooks/useCreateEmptyReportConfirmation';
119
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
1210
import useHasEmptyReportsForPolicy from '@hooks/useHasEmptyReportsForPolicy';
@@ -17,14 +15,13 @@ import usePermissions from '@hooks/usePermissions';
1715
import usePolicyForMovingExpenses from '@hooks/usePolicyForMovingExpenses';
1816
import useThemeStyles from '@hooks/useThemeStyles';
1917
import {startDistanceRequest, startMoneyRequest} from '@libs/actions/IOU';
20-
import {openOldDotLink} from '@libs/actions/Link';
2118
import {createNewReport} from '@libs/actions/Report';
2219
import interceptAnonymousUser from '@libs/interceptAnonymousUser';
2320
import isSearchTopmostFullScreenRoute from '@libs/Navigation/helpers/isSearchTopmostFullScreenRoute';
2421
import Navigation from '@libs/Navigation/Navigation';
2522
import {openTravelDotLink} from '@libs/openTravelDotLink';
2623
import Permissions from '@libs/Permissions';
27-
import {areAllGroupPoliciesExpenseChatDisabled, getDefaultChatEnabledPolicy, isPaidGroupPolicy} from '@libs/PolicyUtils';
24+
import {getDefaultChatEnabledPolicy, isPaidGroupPolicy} from '@libs/PolicyUtils';
2825
import {generateReportID, hasViolations as hasViolationsReportUtils} from '@libs/ReportUtils';
2926
import {shouldRestrictUserBillableActions} from '@libs/SubscriptionUtils';
3027
import CONST from '@src/CONST';
@@ -60,8 +57,6 @@ function QuickCreationActionsBar() {
6057
const hasViolations = hasViolationsReportUtils(undefined, transactionViolations, session?.accountID ?? CONST.DEFAULT_NUMBER_ID, session?.email ?? '');
6158
const {policyForMovingExpensesID, shouldSelectPolicy} = usePolicyForMovingExpenses();
6259
const shouldNavigateToUpgradePath = !policyForMovingExpensesID && !shouldSelectPolicy;
63-
const {showConfirmModal} = useConfirmModal();
64-
6560
const groupPaidPoliciesWithChatEnabledSelector = useCallback((policies: OnyxCollection<OnyxTypes.Policy>) => groupPaidPoliciesWithExpenseChatEnabledSelector(policies, email), [email]);
6661
const [groupPoliciesWithChatEnabled = CONST.EMPTY_ARRAY] = useOnyx(ONYXKEYS.COLLECTION.POLICY, {selector: groupPaidPoliciesWithChatEnabledSelector}, [email]);
6762

@@ -75,8 +70,6 @@ function QuickCreationActionsBar() {
7570
const [hasDismissedEmptyReportsConfirmation] = useOnyx(ONYXKEYS.NVP_EMPTY_REPORTS_CONFIRMATION_DISMISSED);
7671
const shouldShowEmptyReportConfirmationForDefaultChatEnabledPolicy = hasEmptyReport && hasDismissedEmptyReportsConfirmation !== true;
7772

78-
const shouldRedirectToExpensifyClassic = useMemo(() => areAllGroupPoliciesExpenseChatDisabled((allPolicies as OnyxCollection<OnyxTypes.Policy>) ?? {}), [allPolicies]);
79-
8073
const travelEnabledPolicy = useMemo(() => Object.values(allPolicies ?? {}).find((policy) => !!policy?.isTravelEnabled), [allPolicies]);
8174

8275
const shouldShowBookTravel = !!travelEnabledPolicy;
@@ -93,18 +86,6 @@ function QuickCreationActionsBar() {
9386
return travelEnabledPolicy?.travelSettings?.hasAcceptedTerms ?? (travelSettings?.hasAcceptedTerms && isPolicyProvisioned);
9487
}, [travelEnabledPolicy, isBlockedFromSpotnanaTravel, primaryContactMethod, travelSettings?.hasAcceptedTerms]);
9588

96-
const showRedirectToExpensifyClassicModal = useCallback(async () => {
97-
const {action} = await showConfirmModal({
98-
title: translate('sidebarScreen.redirectToExpensifyClassicModal.title'),
99-
prompt: translate('sidebarScreen.redirectToExpensifyClassicModal.description'),
100-
confirmText: translate('exitSurvey.goToExpensifyClassic'),
101-
cancelText: translate('common.cancel'),
102-
});
103-
if (action === ModalActions.CONFIRM) {
104-
openOldDotLink(CONST.OLDDOT_URLS.INBOX);
105-
}
106-
}, [showConfirmModal, translate]);
107-
10889
const handleCreateWorkspaceReport = useCallback(
10990
(shouldDismissEmptyReportsConfirmation?: boolean) => {
11091
if (!defaultChatEnabledPolicy?.id) {
@@ -141,23 +122,14 @@ function QuickCreationActionsBar() {
141122
const handleExpense = useCallback(
142123
() =>
143124
interceptAnonymousUser(() => {
144-
if (shouldRedirectToExpensifyClassic) {
145-
showRedirectToExpensifyClassicModal();
146-
return;
147-
}
148125
startMoneyRequest(CONST.IOU.TYPE.CREATE, generateReportID(), draftTransactionIDs);
149126
}),
150-
[draftTransactionIDs, shouldRedirectToExpensifyClassic, showRedirectToExpensifyClassicModal],
127+
[draftTransactionIDs],
151128
);
152129

153130
const handleReport = useCallback(
154131
() =>
155132
interceptAnonymousUser(() => {
156-
if (shouldRedirectToExpensifyClassic) {
157-
showRedirectToExpensifyClassicModal();
158-
return;
159-
}
160-
161133
if (shouldNavigateToUpgradePath) {
162134
const freshReportID = generateReportID();
163135
const freshTransactionID = generateReportID();
@@ -196,8 +168,6 @@ function QuickCreationActionsBar() {
196168
Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(workspaceIDForReportCreation));
197169
}),
198170
[
199-
shouldRedirectToExpensifyClassic,
200-
showRedirectToExpensifyClassicModal,
201171
shouldNavigateToUpgradePath,
202172
defaultChatEnabledPolicyID,
203173
userBillingGracePeriodEnds,
@@ -215,13 +185,9 @@ function QuickCreationActionsBar() {
215185
const handleDistance = useCallback(
216186
() =>
217187
interceptAnonymousUser(() => {
218-
if (shouldRedirectToExpensifyClassic) {
219-
showRedirectToExpensifyClassicModal();
220-
return;
221-
}
222188
startDistanceRequest(CONST.IOU.TYPE.CREATE, generateReportID(), draftTransactionIDs, lastDistanceExpenseType);
223189
}),
224-
[draftTransactionIDs, lastDistanceExpenseType, shouldRedirectToExpensifyClassic, showRedirectToExpensifyClassicModal],
190+
[draftTransactionIDs, lastDistanceExpenseType],
225191
);
226192

227193
const handleBookTravel = useCallback(

src/components/Search/SearchPageHeader/SearchActionsBarCreateButton.tsx

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@ import React, {useCallback, useMemo, useRef, useState} from 'react';
44
import {View} from 'react-native';
55
import type {OnyxCollection, OnyxEntry} from 'react-native-onyx';
66
import Button from '@components/Button';
7-
import {ModalActions} from '@components/Modal/Global/ModalContext';
87
import type {PopoverMenuItem} from '@components/PopoverMenu';
98
import PopoverMenu from '@components/PopoverMenu';
10-
import useConfirmModal from '@hooks/useConfirmModal';
119
import useCreateEmptyReportConfirmation from '@hooks/useCreateEmptyReportConfirmation';
1210
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
1311
import useHasEmptyReportsForPolicy from '@hooks/useHasEmptyReportsForPolicy';
@@ -19,13 +17,12 @@ import usePolicyForMovingExpenses from '@hooks/usePolicyForMovingExpenses';
1917
import usePopoverPosition from '@hooks/usePopoverPosition';
2018
import useThemeStyles from '@hooks/useThemeStyles';
2119
import {startDistanceRequest, startMoneyRequest} from '@libs/actions/IOU';
22-
import {openOldDotLink} from '@libs/actions/Link';
2320
import {createNewReport} from '@libs/actions/Report';
2421
import getIconForAction from '@libs/getIconForAction';
2522
import interceptAnonymousUser from '@libs/interceptAnonymousUser';
2623
import isSearchTopmostFullScreenRoute from '@libs/Navigation/helpers/isSearchTopmostFullScreenRoute';
2724
import Navigation from '@libs/Navigation/Navigation';
28-
import {areAllGroupPoliciesExpenseChatDisabled, getDefaultChatEnabledPolicy} from '@libs/PolicyUtils';
25+
import {getDefaultChatEnabledPolicy} from '@libs/PolicyUtils';
2926
import {generateReportID, hasViolations as hasViolationsReportUtils} from '@libs/ReportUtils';
3027
import {shouldRestrictUserBillableActions} from '@libs/SubscriptionUtils';
3128
import CONST from '@src/CONST';
@@ -47,7 +44,6 @@ function SearchActionsBarCreateButton() {
4744
const [session] = useOnyx(ONYXKEYS.SESSION);
4845
const [email] = useOnyx(ONYXKEYS.SESSION, {selector: emailSelector});
4946
const [allBetas] = useOnyx(ONYXKEYS.BETAS);
50-
const [allPolicies] = useOnyx(ONYXKEYS.COLLECTION.POLICY);
5147
const [transactionViolations] = useOnyx(ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS);
5248
const [draftTransactionIDs] = useOnyx(ONYXKEYS.COLLECTION.TRANSACTION_DRAFT, {selector: validTransactionDraftIDsSelector});
5349
const groupPaidPoliciesWithChatEnabledSelector = useCallback((policies: OnyxCollection<OnyxTypes.Policy>) => groupPaidPoliciesWithExpenseChatEnabledSelector(policies, email), [email]);
@@ -63,12 +59,6 @@ function SearchActionsBarCreateButton() {
6359
const [amountOwed] = useOnyx(ONYXKEYS.NVP_PRIVATE_AMOUNT_OWED);
6460
const {policyForMovingExpensesID, shouldSelectPolicy} = usePolicyForMovingExpenses();
6561
const shouldNavigateToUpgradePath = !policyForMovingExpensesID && !shouldSelectPolicy;
66-
const {showConfirmModal} = useConfirmModal();
67-
68-
const shouldRedirectToExpensifyClassic = useMemo(() => {
69-
return areAllGroupPoliciesExpenseChatDisabled((allPolicies as OnyxCollection<OnyxTypes.Policy>) ?? {});
70-
}, [allPolicies]);
71-
7262
const defaultChatEnabledPolicy = useMemo(
7363
() => getDefaultChatEnabledPolicy(groupPoliciesWithChatEnabled as Array<OnyxEntry<OnyxTypes.Policy>>, activePolicy),
7464
[activePolicy, groupPoliciesWithChatEnabled],
@@ -79,18 +69,6 @@ function SearchActionsBarCreateButton() {
7969
const [hasDismissedEmptyReportsConfirmation] = useOnyx(ONYXKEYS.NVP_EMPTY_REPORTS_CONFIRMATION_DISMISSED);
8070
const shouldShowEmptyReportConfirmationForDefaultChatEnabledPolicy = hasEmptyReport && hasDismissedEmptyReportsConfirmation !== true;
8171

82-
const showRedirectToExpensifyClassicModal = useCallback(async () => {
83-
const {action} = await showConfirmModal({
84-
title: translate('sidebarScreen.redirectToExpensifyClassicModal.title'),
85-
prompt: translate('sidebarScreen.redirectToExpensifyClassicModal.description'),
86-
confirmText: translate('exitSurvey.goToExpensifyClassic'),
87-
cancelText: translate('common.cancel'),
88-
});
89-
if (action === ModalActions.CONFIRM) {
90-
openOldDotLink(CONST.OLDDOT_URLS.INBOX);
91-
}
92-
}, [showConfirmModal, translate]);
93-
9472
const handleCreateWorkspaceReport = useCallback(
9573
(shouldDismissEmptyReportsConfirmation?: boolean) => {
9674
if (!defaultChatEnabledPolicy?.id) {
@@ -160,11 +138,6 @@ function SearchActionsBarCreateButton() {
160138
text: translate('report.newReport.createReport'),
161139
onSelected: () =>
162140
interceptAnonymousUser(() => {
163-
if (shouldRedirectToExpensifyClassic) {
164-
showRedirectToExpensifyClassicModal();
165-
return;
166-
}
167-
168141
// No valid policy at all → upgrade + create workspace flow
169142
if (shouldNavigateToUpgradePath) {
170143
const freshReportID = generateReportID();
@@ -226,8 +199,6 @@ function SearchActionsBarCreateButton() {
226199
translate,
227200
expensifyIcons,
228201
draftTransactionIDs,
229-
shouldRedirectToExpensifyClassic,
230-
showRedirectToExpensifyClassicModal,
231202
shouldNavigateToUpgradePath,
232203
groupPoliciesWithChatEnabled.length,
233204
defaultChatEnabledPolicyID,

src/hooks/useSearchTypeMenuSections.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {defaultExpensifyCardSelector} from '@selectors/Card';
22
import {validTransactionDraftIDsSelector} from '@selectors/TransactionDraft';
33
import {useCallback, useEffect, useMemo, useState} from 'react';
44
import type {OnyxEntry} from 'react-native-onyx';
5-
import {areAllGroupPoliciesExpenseChatDisabled} from '@libs/PolicyUtils';
65
import {createTypeMenuSections, doesSearchItemMatchSort} from '@libs/SearchUIUtils';
76
import CONST from '@src/CONST';
87
import ONYXKEYS from '@src/ONYXKEYS';
@@ -68,7 +67,6 @@ const useSearchTypeMenuSections = (queryParams?: UseSearchTypeMenuSectionsParams
6867
const [allPolicies] = useMappedPolicies(policyMapper);
6968
const [currentUserLoginAndAccountID] = useOnyx(ONYXKEYS.SESSION, {selector: currentUserLoginAndAccountIDSelector});
7069
const [savedSearches] = useOnyx(ONYXKEYS.SAVED_SEARCHES);
71-
const shouldRedirectToExpensifyClassic = useMemo(() => areAllGroupPoliciesExpenseChatDisabled(allPolicies ?? {}), [allPolicies]);
7270
const [draftTransactionIDs] = useOnyx(ONYXKEYS.COLLECTION.TRANSACTION_DRAFT, {selector: validTransactionDraftIDsSelector});
7371
const [isTrackIntentUser] = useOnyx(ONYXKEYS.NVP_INTRO_SELECTED, {selector: isTrackIntentUserSelector});
7472
const [pendingReportCreation, setPendingReportCreation] = useState<{policyID: string; policyName?: string; onConfirm: (shouldDismissEmptyReportsConfirmation: boolean) => void} | null>(
@@ -112,7 +110,6 @@ const useSearchTypeMenuSections = (queryParams?: UseSearchTypeMenuSectionsParams
112110
savedSearches,
113111
isOffline,
114112
defaultExpensifyCard,
115-
shouldRedirectToExpensifyClassic,
116113
draftTransactionIDs,
117114
isTrackIntentUser: isTrackIntentUser ?? false,
118115
}),
@@ -125,7 +122,6 @@ const useSearchTypeMenuSections = (queryParams?: UseSearchTypeMenuSectionsParams
125122
allPolicies,
126123
savedSearches,
127124
isOffline,
128-
shouldRedirectToExpensifyClassic,
129125
draftTransactionIDs,
130126
isTrackIntentUser,
131127
],

src/languages/de.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -918,11 +918,6 @@ const translations: TranslationDeepObject<typeof en> = {
918918
listOfChats: 'Chatliste',
919919
saveTheWorld: 'Rette die Welt',
920920
tooltip: 'Starte hier!',
921-
redirectToExpensifyClassicModal: {
922-
title: 'Bald verfügbar',
923-
description:
924-
'Wir nehmen noch ein paar letzte Anpassungen an New Expensify vor, damit alles zu deiner speziellen Einrichtung passt. In der Zwischenzeit kannst du Expensify Classic verwenden.',
925-
},
926921
},
927922
homePage: {
928923
forYou: 'Für dich',

src/languages/en.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -946,10 +946,6 @@ const translations = {
946946
listOfChats: 'List of chats',
947947
saveTheWorld: 'Save the world',
948948
tooltip: 'Get started here!',
949-
redirectToExpensifyClassicModal: {
950-
title: 'Coming soon',
951-
description: "We're fine-tuning a few more bits and pieces of New Expensify to accommodate your specific setup. In the meantime, head over to Expensify Classic.",
952-
},
953949
},
954950
homePage: {
955951
forYou: 'For you',

src/languages/es.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -849,10 +849,6 @@ const translations: TranslationDeepObject<typeof en> = {
849849
listOfChats: 'lista de chats',
850850
saveTheWorld: 'Salvar el mundo',
851851
tooltip: '¡Comienza aquí!',
852-
redirectToExpensifyClassicModal: {
853-
title: 'Próximamente',
854-
description: 'Estamos ajustando algunos detalles de New Expensify para adaptarla a tu configuración específica. Mientras tanto, dirígete a Expensify Classic.',
855-
},
856852
},
857853
homePage: {
858854
forYou: 'Para ti',

0 commit comments

Comments
 (0)