|
1 | 1 | import {useIsFocused} from '@react-navigation/native'; |
2 | 2 | import React, {useCallback, useContext, useEffect, useMemo, useReducer, useRef, useState} from 'react'; |
3 | | -import {ActivityIndicator, InteractionManager, PanResponder, PixelRatio, StyleSheet, View} from 'react-native'; |
| 3 | +import {ActivityIndicator, InteractionManager, PanResponder, StyleSheet, View} from 'react-native'; |
4 | 4 | import type {OnyxEntry} from 'react-native-onyx'; |
5 | 5 | import {RESULTS} from 'react-native-permissions'; |
6 | 6 | import Animated, {useAnimatedStyle, useSharedValue, withTiming} from 'react-native-reanimated'; |
@@ -47,7 +47,6 @@ import {isPaidGroupPolicy} from '@libs/PolicyUtils'; |
47 | 47 | import {findSelfDMReportID, generateReportID, getPolicyExpenseChat, isArchivedReport, isPolicyExpenseChat} from '@libs/ReportUtils'; |
48 | 48 | import {shouldRestrictUserBillableActions} from '@libs/SubscriptionUtils'; |
49 | 49 | import {getDefaultTaxCode, hasReceipt} from '@libs/TransactionUtils'; |
50 | | -import ReceiptDropUI from '@pages/iou/ReceiptDropUI'; |
51 | 50 | import StepScreenDragAndDropWrapper from '@pages/iou/request/step/StepScreenDragAndDropWrapper'; |
52 | 51 | import withFullTransactionOrNotFound from '@pages/iou/request/step/withFullTransactionOrNotFound'; |
53 | 52 | import withWritableReportOrNotFound from '@pages/iou/request/step/withWritableReportOrNotFound'; |
@@ -98,7 +97,6 @@ function IOURequestStepScan({ |
98 | 97 |
|
99 | 98 | const [startLocationPermissionFlow, setStartLocationPermissionFlow] = useState(false); |
100 | 99 | const [receiptFiles, setReceiptFiles] = useState<ReceiptFile[]>([]); |
101 | | - const [receiptImageTopPosition, setReceiptImageTopPosition] = useState(0); |
102 | 100 | // we need to use isSmallScreenWidth instead of shouldUseNarrowLayout because drag and drop is not supported on mobile |
103 | 101 | // eslint-disable-next-line rulesdir/prefer-shouldUseNarrowLayout-instead-of-isSmallScreenWidth |
104 | 102 | const {isSmallScreenWidth} = useResponsiveLayout(); |
@@ -140,8 +138,7 @@ function IOURequestStepScan({ |
140 | 138 | const transactionTaxCode = (initialTransaction?.taxCode ? initialTransaction?.taxCode : defaultTaxCode) ?? ''; |
141 | 139 | const transactionTaxAmount = initialTransaction?.taxAmount ?? 0; |
142 | 140 |
|
143 | | - const canUseMultiDragAndDrop = isBetaEnabled(CONST.BETAS.NEWDOT_MULTI_FILES_DRAG_AND_DROP); |
144 | | - const shouldAcceptMultipleFiles = canUseMultiDragAndDrop && !isEditing && !backTo; |
| 141 | + const shouldAcceptMultipleFiles = !isEditing && !backTo; |
145 | 142 |
|
146 | 143 | const selfDMReportID = useMemo(() => findSelfDMReportID(), []); |
147 | 144 |
|
@@ -974,13 +971,10 @@ function IOURequestStepScan({ |
974 | 971 | const desktopUploadView = () => ( |
975 | 972 | <> |
976 | 973 | {PDFValidationComponent} |
977 | | - <View onLayout={({nativeEvent}) => setReceiptImageTopPosition(PixelRatio.roundToNearestPixel((nativeEvent.layout as DOMRect).top))}> |
978 | | - <ReceiptUpload |
979 | | - width={CONST.RECEIPT.ICON_SIZE} |
980 | | - height={CONST.RECEIPT.ICON_SIZE} |
981 | | - /> |
982 | | - </View> |
983 | | - |
| 974 | + <ReceiptUpload |
| 975 | + width={CONST.RECEIPT.ICON_SIZE} |
| 976 | + height={CONST.RECEIPT.ICON_SIZE} |
| 977 | + /> |
984 | 978 | <View |
985 | 979 | style={[styles.uploadFileViewTextContainer, styles.userSelectNone]} |
986 | 980 | // eslint-disable-next-line react/jsx-props-no-spreading |
@@ -1037,31 +1031,15 @@ function IOURequestStepScan({ |
1037 | 1031 | <View style={[styles.flex1, !isMobile() && styles.alignItemsCenter, styles.justifyContentCenter]}> |
1038 | 1032 | {!(isDraggingOver ?? isDraggingOverWrapper) && (isMobile() ? mobileCameraView() : desktopUploadView())} |
1039 | 1033 | </View> |
1040 | | - {/* TODO: remove beta check after the feature is enabled */} |
1041 | | - {canUseMultiDragAndDrop ? ( |
1042 | | - <DragAndDropConsumer onDrop={handleDropReceipt}> |
1043 | | - <DropZoneUI |
1044 | | - icon={isReplacingReceipt ? Expensicons.ReplaceReceipt : Expensicons.SmartScan} |
1045 | | - dropStyles={styles.receiptDropOverlay(true)} |
1046 | | - dropTitle={ |
1047 | | - isReplacingReceipt ? translate('dropzone.replaceReceipt') : translate(shouldAcceptMultipleFiles ? 'dropzone.scanReceipts' : 'quickAction.scanReceipt') |
1048 | | - } |
1049 | | - dropTextStyles={styles.receiptDropText} |
1050 | | - dropInnerWrapperStyles={styles.receiptDropInnerWrapper(true)} |
1051 | | - /> |
1052 | | - </DragAndDropConsumer> |
1053 | | - ) : ( |
1054 | | - <ReceiptDropUI |
1055 | | - onDrop={(e) => { |
1056 | | - const file = e?.dataTransfer?.files[0]; |
1057 | | - if (file) { |
1058 | | - file.uri = URL.createObjectURL(file); |
1059 | | - validateFiles([file]); |
1060 | | - } |
1061 | | - }} |
1062 | | - receiptImageTopPosition={receiptImageTopPosition} |
| 1034 | + <DragAndDropConsumer onDrop={handleDropReceipt}> |
| 1035 | + <DropZoneUI |
| 1036 | + icon={isReplacingReceipt ? Expensicons.ReplaceReceipt : Expensicons.SmartScan} |
| 1037 | + dropStyles={styles.receiptDropOverlay(true)} |
| 1038 | + dropTitle={isReplacingReceipt ? translate('dropzone.replaceReceipt') : translate(shouldAcceptMultipleFiles ? 'dropzone.scanReceipts' : 'quickAction.scanReceipt')} |
| 1039 | + dropTextStyles={styles.receiptDropText} |
| 1040 | + dropInnerWrapperStyles={styles.receiptDropInnerWrapper(true)} |
1063 | 1041 | /> |
1064 | | - )} |
| 1042 | + </DragAndDropConsumer> |
1065 | 1043 | {/* We use isMobile() here to explicitly hide DownloadAppBanner component on both mobile web and native apps */} |
1066 | 1044 | {!isMobile() && <DownloadAppBanner />} |
1067 | 1045 | {ErrorModal} |
|
0 commit comments