Skip to content

Commit ad2b0c0

Browse files
authored
Merge pull request Expensify#66061 from callstack-internal/chore/65722-remove-beta-checks
[NoQA] Remove beta checks for newDotMultiFilesDragAndDrop
2 parents 50dcda4 + 3e59c74 commit ad2b0c0

10 files changed

Lines changed: 39 additions & 117 deletions

File tree

src/CONST/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -650,7 +650,6 @@ const CONST = {
650650
CUSTOM_RULES: 'customRules',
651651
GLOBAL_REIMBURSEMENTS_ON_ND: 'globalReimbursementsOnND',
652652
IS_TRAVEL_VERIFIED: 'isTravelVerified',
653-
NEWDOT_MULTI_FILES_DRAG_AND_DROP: 'newDotMultiFilesDragAndDrop',
654653
PLAID_COMPANY_CARDS: 'plaidCompanyCards',
655654
TRACK_FLOWS: 'trackFlows',
656655
EUR_BILLING: 'eurBilling',

src/pages/Search/SearchPage.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import useLocalize from '@hooks/useLocalize';
2222
import useMobileSelectionMode from '@hooks/useMobileSelectionMode';
2323
import useNetwork from '@hooks/useNetwork';
2424
import useOnyx from '@hooks/useOnyx';
25-
import usePermissions from '@hooks/usePermissions';
2625
import useResponsiveLayout from '@hooks/useResponsiveLayout';
2726
import useTheme from '@hooks/useTheme';
2827
import useThemeStyles from '@hooks/useThemeStyles';
@@ -82,9 +81,6 @@ function SearchPage({route}: SearchPageProps) {
8281
const [isDownloadExportModalVisible, setIsDownloadExportModalVisible] = useState(false);
8382

8483
const {q} = route.params;
85-
86-
const {isBetaEnabled} = usePermissions();
87-
8884
const queryJSON = useMemo(() => buildSearchQueryJSON(q), [q]);
8985

9086
// eslint-disable-next-line rulesdir/no-default-id-values
@@ -500,7 +496,7 @@ function SearchPage({route}: SearchPageProps) {
500496
if (shouldUseNarrowLayout) {
501497
return (
502498
<>
503-
<DragAndDropProvider isDisabled={!isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP)}>
499+
<DragAndDropProvider>
504500
{PDFValidationComponent}
505501
<SearchPageNarrow
506502
queryJSON={queryJSON}
@@ -577,7 +573,7 @@ function SearchPage({route}: SearchPageProps) {
577573
shouldShowOfflineIndicatorInWideScreen={!!shouldShowOfflineIndicator}
578574
offlineIndicatorStyle={styles.mtAuto}
579575
>
580-
<DragAndDropProvider isDisabled={!isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP)}>
576+
<DragAndDropProvider>
581577
{PDFValidationComponent}
582578
<SearchPageHeader
583579
queryJSON={queryJSON}

src/pages/home/report/ReportActionCompose/AttachmentPickerWithMenuItems.tsx

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -311,19 +311,12 @@ function AttachmentPickerWithMenuItems({
311311
// 4. And the Create button is at the bottom.
312312
const createButtonContainerStyles = [styles.flexGrow0, styles.flexShrink0];
313313

314-
const isMultipleDragAndDropEnabled = isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP);
315-
316314
return (
317315
<AttachmentPicker
318-
allowMultiple={isMultipleDragAndDropEnabled}
319-
onOpenPicker={() => {
320-
if (!isMultipleDragAndDropEnabled) {
321-
return;
322-
}
323-
setIsLoaderVisible(true);
324-
}}
325-
fileLimit={isMultipleDragAndDropEnabled ? CONST.API_ATTACHMENT_VALIDATIONS.MAX_FILE_LIMIT : 1}
326-
shouldValidateImage={!isMultipleDragAndDropEnabled}
316+
allowMultiple
317+
onOpenPicker={() => setIsLoaderVisible(true)}
318+
fileLimit={CONST.API_ATTACHMENT_VALIDATIONS.MAX_FILE_LIMIT}
319+
shouldValidateImage={false}
327320
>
328321
{({openPicker}) => {
329322
const triggerAttachmentPicker = () => {

src/pages/home/report/ReportActionCompose/ReportActionCompose.tsx

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import useHandleExceedMaxTaskTitleLength from '@hooks/useHandleExceedMaxTaskTitl
2727
import useLocalize from '@hooks/useLocalize';
2828
import useNetwork from '@hooks/useNetwork';
2929
import useOnyx from '@hooks/useOnyx';
30-
import usePermissions from '@hooks/usePermissions';
3130
import useResponsiveLayout from '@hooks/useResponsiveLayout';
3231
import useThemeStyles from '@hooks/useThemeStyles';
3332
import canFocusInputOnScreenFocus from '@libs/canFocusInputOnScreenFocus';
@@ -55,7 +54,6 @@ import willBlurTextInputOnTapOutsideFunc from '@libs/willBlurTextInputOnTapOutsi
5554
import Navigation from '@navigation/Navigation';
5655
import AgentZeroProcessingRequestIndicator from '@pages/home/report/AgentZeroProcessingRequestIndicator';
5756
import ParticipantLocalTime from '@pages/home/report/ParticipantLocalTime';
58-
import ReportDropUI from '@pages/home/report/ReportDropUI';
5957
import ReportTypingIndicator from '@pages/home/report/ReportTypingIndicator';
6058
import type {FileObject} from '@pages/media/AttachmentModalScreen/types';
6159
import {hideEmojiPicker, isActive as isActiveEmojiPickerAction} from '@userActions/EmojiPickerAction';
@@ -150,9 +148,6 @@ function ReportActionCompose({
150148
const [shouldShowComposeInput = true] = useOnyx(ONYXKEYS.SHOULD_SHOW_COMPOSE_INPUT, {canBeMissing: true});
151149
const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`, {canBeMissing: true});
152150

153-
// TODO: remove beta check after the feature is enabled
154-
const {isBetaEnabled} = usePermissions();
155-
156151
/**
157152
* Updates the Highlight state of the composer
158153
*/
@@ -591,7 +586,7 @@ function ReportActionCompose({
591586
if (isAttachmentPreviewActive) {
592587
return;
593588
}
594-
if (isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP) && event.dataTransfer?.files.length && event.dataTransfer?.files.length > 1) {
589+
if (event.dataTransfer?.files.length && event.dataTransfer?.files.length > 1) {
595590
const files = Array.from(event.dataTransfer?.files).map((file) => {
596591
// eslint-disable-next-line no-param-reassign
597592
file.uri = URL.createObjectURL(file);
@@ -668,16 +663,15 @@ function ReportActionCompose({
668663
onValueChange={onValueChange}
669664
didHideComposerInput={didHideComposerInput}
670665
/>
671-
{/* TODO: remove beta check after the feature is enabled */}
672-
{isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP) && shouldDisplayDualDropZone && (
666+
{shouldDisplayDualDropZone && (
673667
<DualDropZone
674668
isEditing={shouldAddOrReplaceReceipt && hasReceipt}
675669
onAttachmentDrop={handleAttachmentDrop}
676670
onReceiptDrop={handleAddingReceipt}
677671
shouldAcceptSingleReceipt={shouldAddOrReplaceReceipt}
678672
/>
679673
)}
680-
{isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP) && !shouldDisplayDualDropZone && (
674+
{!shouldDisplayDualDropZone && (
681675
<DragAndDropConsumer onDrop={handleAttachmentDrop}>
682676
<DropZoneUI
683677
icon={Expensicons.MessageInABottle}
@@ -688,20 +682,6 @@ function ReportActionCompose({
688682
/>
689683
</DragAndDropConsumer>
690684
)}
691-
{!isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP) && (
692-
<ReportDropUI
693-
onDrop={(event: DragEvent) => {
694-
if (isAttachmentPreviewActive) {
695-
return;
696-
}
697-
const data = event.dataTransfer?.files[0];
698-
if (data) {
699-
data.uri = URL.createObjectURL(data);
700-
displayFilesInModal([data]);
701-
}
702-
}}
703-
/>
704-
)}
705685
</>
706686
);
707687
}}

src/pages/iou/request/IOURequestStartPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ function IOURequestStartPage({
176176
<ScreenWrapper
177177
shouldEnableKeyboardAvoidingView={false}
178178
shouldEnableMinHeight={canUseTouchScreen()}
179-
headerGapStyles={isDraggingOver ? [isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP) ? styles.dropWrapper : styles.receiptDropHeaderGap] : []}
179+
headerGapStyles={isDraggingOver ? styles.dropWrapper : []}
180180
testID={IOURequestStartPage.displayName}
181181
focusTrapSettings={{containerElements: focusTrapContainerElements}}
182182
>

src/pages/iou/request/step/IOURequestStepConfirmation.tsx

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import useFilesValidation from '@hooks/useFilesValidation';
1919
import useLocalize from '@hooks/useLocalize';
2020
import useNetwork from '@hooks/useNetwork';
2121
import useOnyx from '@hooks/useOnyx';
22-
import usePermissions from '@hooks/usePermissions';
2322
import useThemeStyles from '@hooks/useThemeStyles';
2423
import useThreeDotsAnchorPosition from '@hooks/useThreeDotsAnchorPosition';
2524
import {completeTestDriveTask} from '@libs/actions/Task';
@@ -36,7 +35,6 @@ import {getParticipantsOption, getReportOption} from '@libs/OptionsListUtils';
3635
import Performance from '@libs/Performance';
3736
import {generateReportID, getBankAccountRoute, getReportOrDraftReport, isProcessingReport, isReportOutstanding, isSelectedManagerMcTest} from '@libs/ReportUtils';
3837
import {getAttendees, getDefaultTaxCode, getRateID, getRequestType, getValidWaypoints, hasReceipt, isScanRequest} from '@libs/TransactionUtils';
39-
import ReceiptDropUI from '@pages/iou/ReceiptDropUI';
4038
import type {FileObject} from '@pages/media/AttachmentModalScreen/types';
4139
import type {GpsPoint} from '@userActions/IOU';
4240
import {
@@ -187,9 +185,6 @@ function IOURequestStepConfirmation({
187185
const [isConfirmed, setIsConfirmed] = useState(false);
188186
const [isConfirming, setIsConfirming] = useState(false);
189187

190-
// TODO: remove beta check after the feature is enabled
191-
const {isBetaEnabled} = usePermissions();
192-
193188
const [introSelected] = useOnyx(ONYXKEYS.NVP_INTRO_SELECTED, {canBeMissing: false});
194189
const viewTourReportID = introSelected?.viewTour;
195190
const [viewTourReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${viewTourReportID}`, {canBeMissing: true});
@@ -320,7 +315,7 @@ function IOURequestStepConfirmation({
320315
// If the participants weren't automatically added to the transaction, then we should go back to the IOURequestStepParticipants.
321316
if (!transaction?.participantsAutoAssigned && participantsAutoAssignedFromRoute !== 'true') {
322317
// TODO: temporary fix for multi-files dnd; check if other flow can use reportID instead of transaction?.reportID
323-
const shouldUseNewScanFlow = isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP) && (iouType === CONST.IOU.TYPE.TRACK || iouType === CONST.IOU.TYPE.SUBMIT);
318+
const shouldUseNewScanFlow = iouType === CONST.IOU.TYPE.TRACK || iouType === CONST.IOU.TYPE.SUBMIT;
324319
const backToReportID =
325320
shouldUseNewScanFlow && !transaction?.participants?.at(0)?.isPolicyExpenseChat
326321
? reportID
@@ -362,7 +357,6 @@ function IOURequestStepConfirmation({
362357
reportID,
363358
isMovingTransactionFromTrackExpense,
364359
participantsAutoAssignedFromRoute,
365-
isBetaEnabled,
366360
]);
367361

368362
const navigateToAddReceipt = useCallback(() => {
@@ -1017,7 +1011,7 @@ function IOURequestStepConfirmation({
10171011
<ScreenWrapper
10181012
shouldEnableMaxHeight={canUseTouchScreen()}
10191013
testID={IOURequestStepConfirmation.displayName}
1020-
headerGapStyles={isDraggingOver ? [isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP) ? styles.dropWrapper : styles.isDraggingOver] : []}
1014+
headerGapStyles={isDraggingOver ? [styles.dropWrapper] : []}
10211015
>
10221016
<DragAndDropProvider
10231017
setIsDraggingOver={setIsDraggingOver}
@@ -1050,20 +1044,15 @@ function IOURequestStepConfirmation({
10501044
</HeaderWithBackButton>
10511045
{(isLoading || (isScanRequest(transaction) && !Object.values(receiptFiles).length)) && <FullScreenLoadingIndicator />}
10521046
{PDFValidationComponent}
1053-
{/* TODO: remove beta check after the feature is enabled */}
1054-
{isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP) ? (
1055-
<DragAndDropConsumer onDrop={handleDroppingReceipt}>
1056-
<DropZoneUI
1057-
icon={isEditingReceipt ? Expensicons.ReplaceReceipt : Expensicons.SmartScan}
1058-
dropStyles={styles.receiptDropOverlay(true)}
1059-
dropTitle={translate(isEditingReceipt ? 'dropzone.replaceReceipt' : 'quickAction.scanReceipt')}
1060-
dropTextStyles={styles.receiptDropText}
1061-
dropInnerWrapperStyles={styles.receiptDropInnerWrapper(true)}
1062-
/>
1063-
</DragAndDropConsumer>
1064-
) : (
1065-
<ReceiptDropUI onDrop={handleDroppingReceipt} />
1066-
)}
1047+
<DragAndDropConsumer onDrop={handleDroppingReceipt}>
1048+
<DropZoneUI
1049+
icon={isEditingReceipt ? Expensicons.ReplaceReceipt : Expensicons.SmartScan}
1050+
dropStyles={styles.receiptDropOverlay(true)}
1051+
dropTitle={translate(isEditingReceipt ? 'dropzone.replaceReceipt' : 'quickAction.scanReceipt')}
1052+
dropTextStyles={styles.receiptDropText}
1053+
dropInnerWrapperStyles={styles.receiptDropInnerWrapper(true)}
1054+
/>
1055+
</DragAndDropConsumer>
10671056
{ErrorModal}
10681057
{!!gpsRequired && (
10691058
<LocationPermissionModal

src/pages/iou/request/step/IOURequestStepParticipants.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import React, {useCallback, useEffect, useMemo, useRef} from 'react';
33
import FormHelpMessage from '@components/FormHelpMessage';
44
import useLocalize from '@hooks/useLocalize';
55
import useOnyx from '@hooks/useOnyx';
6-
import usePermissions from '@hooks/usePermissions';
76
import useThemeStyles from '@hooks/useThemeStyles';
87
import {setTransactionReport} from '@libs/actions/Transaction';
98
import {READ_COMMANDS} from '@libs/API/types';
@@ -99,8 +98,6 @@ function IOURequestStepParticipants({
9998
const [activePolicyID] = useOnyx(ONYXKEYS.NVP_ACTIVE_POLICY_ID, {canBeMissing: false});
10099
const [activePolicy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${activePolicyID}`, {canBeMissing: true});
101100

102-
const {isBetaEnabled} = usePermissions();
103-
104101
const isActivePolicyRequest =
105102
iouType === CONST.IOU.TYPE.CREATE && isPaidGroupPolicy(activePolicy) && activePolicy?.isPolicyExpenseChatEnabled && !shouldRestrictUserBillableActions(activePolicy.id);
106103

@@ -160,7 +157,7 @@ function IOURequestStepParticipants({
160157
const rateID = DistanceRequestUtils.getCustomUnitRateID(selfDMReportID);
161158
transactions.forEach((transaction) => {
162159
setCustomUnitRateID(transaction.transactionID, rateID);
163-
const shouldSetParticipantAutoAssignment = isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP) && iouType === CONST.IOU.TYPE.CREATE;
160+
const shouldSetParticipantAutoAssignment = iouType === CONST.IOU.TYPE.CREATE;
164161
setMoneyRequestParticipantsFromReport(transaction.transactionID, selfDMReport, shouldSetParticipantAutoAssignment ? isActivePolicyRequest : true);
165162
});
166163
const iouConfirmationPageRoute = ROUTES.MONEY_REQUEST_STEP_CONFIRMATION.getRoute(action, CONST.IOU.TYPE.TRACK, initialTransactionID, selfDMReportID);
@@ -173,7 +170,7 @@ function IOURequestStepParticipants({
173170
Navigation.navigate(iouConfirmationPageRoute);
174171
}
175172
});
176-
}, [selfDMReportID, transactions, action, initialTransactionID, waitForKeyboardDismiss, isBetaEnabled, iouType, selfDMReport, isActivePolicyRequest, backTo]);
173+
}, [selfDMReportID, transactions, action, initialTransactionID, waitForKeyboardDismiss, iouType, selfDMReport, isActivePolicyRequest, backTo]);
177174

178175
const addParticipant = useCallback(
179176
(val: Participant[]) => {

src/pages/iou/request/step/IOURequestStepScan/index.native.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import withCurrentUserPersonalDetails from '@components/withCurrentUserPersonalD
2626
import useFilesValidation from '@hooks/useFilesValidation';
2727
import useLocalize from '@hooks/useLocalize';
2828
import useOnyx from '@hooks/useOnyx';
29-
import usePermissions from '@hooks/usePermissions';
3029
import usePolicy from '@hooks/usePolicy';
3130
import useTheme from '@hooks/useTheme';
3231
import useThemeStyles from '@hooks/useThemeStyles';
@@ -100,7 +99,6 @@ function IOURequestStepScan({
10099
const hasFlash = !!device?.hasFlash;
101100
const camera = useRef<Camera>(null);
102101
const [flash, setFlash] = useState(false);
103-
const {isBetaEnabled} = usePermissions();
104102
const canUseMultiScan = !isEditing && iouType !== CONST.IOU.TYPE.SPLIT && !backTo && !backToReport;
105103
const [startLocationPermissionFlow, setStartLocationPermissionFlow] = useState(false);
106104
const [receiptFiles, setReceiptFiles] = useState<ReceiptFile[]>([]);
@@ -132,7 +130,7 @@ function IOURequestStepScan({
132130
return allTransactions.filter((transaction): transaction is Transaction => !!transaction);
133131
}, [initialTransaction, initialTransactionID, optimisticTransactions]);
134132

135-
const shouldAcceptMultipleFiles = isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP) && !isEditing && !backTo;
133+
const shouldAcceptMultipleFiles = !isEditing && !backTo;
136134

137135
const selfDMReportID = useMemo(() => findSelfDMReportID(), []);
138136

0 commit comments

Comments
 (0)