diff --git a/src/pages/iou/request/IOURequestStartPage.tsx b/src/pages/iou/request/IOURequestStartPage.tsx index 6c7714c5d4f95..1ce10f28e4fdd 100644 --- a/src/pages/iou/request/IOURequestStartPage.tsx +++ b/src/pages/iou/request/IOURequestStartPage.tsx @@ -11,6 +11,7 @@ import TabSelector from '@components/TabSelector/TabSelector'; import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails'; import useHandleBackButton from '@hooks/useHandleBackButton'; import useLocalize from '@hooks/useLocalize'; +import useNetwork from '@hooks/useNetwork'; import useOnyx from '@hooks/useOnyx'; import usePermissions from '@hooks/usePermissions'; import usePolicy from '@hooks/usePolicy'; @@ -20,6 +21,8 @@ import {dismissProductTraining} from '@libs/actions/Welcome'; import {isMobile} from '@libs/Browser'; import {canUseTouchScreen} from '@libs/DeviceCapabilities'; import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID'; +import getPlatform from '@libs/getPlatform'; +import type Platform from '@libs/getPlatform/types'; import Navigation from '@libs/Navigation/Navigation'; import OnyxTabNavigator, {TabScreenWithFocusTrapWrapper, TopTab} from '@libs/Navigation/OnyxTabNavigator'; import {getIsUserSubmittedExpenseOrScannedReceipt} from '@libs/OptionsListUtils'; @@ -46,6 +49,9 @@ type IOURequestStartPageProps = WithWritableReportOrNotFoundProps 1); const [currentDate] = useOnyx(ONYXKEYS.CURRENT_DATE, {canBeMissing: true}); + const {isOffline} = useNetwork(); const [nvpDismissedProductTraining] = useOnyx(ONYXKEYS.NVP_DISMISSED_PRODUCT_TRAINING, {canBeMissing: true}); const tabTitles = { @@ -185,7 +192,11 @@ function IOURequestStartPage({ const setTestReceiptAndNavigateRef = useRef<() => void>(() => {}); const {shouldShowProductTrainingTooltip, renderProductTrainingTooltip} = useProductTrainingContext( CONST.PRODUCT_TRAINING_TOOLTIP_NAMES.SCAN_TEST_TOOLTIP, - !getIsUserSubmittedExpenseOrScannedReceipt(nvpDismissedProductTraining) && isBetaEnabled(CONST.BETAS.NEWDOT_MANAGER_MCTEST) && selectedTab === CONST.TAB_REQUEST.SCAN, + // The test receipt image is served via our server on web so it requires internet connection + !getIsUserSubmittedExpenseOrScannedReceipt(nvpDismissedProductTraining) && + isBetaEnabled(CONST.BETAS.NEWDOT_MANAGER_MCTEST) && + selectedTab === CONST.TAB_REQUEST.SCAN && + !(isOffline && isWeb), { onConfirm: () => { setTestReceiptAndNavigateRef?.current?.();