diff --git a/src/components/ReportActionItem/MoneyRequestView.js b/src/components/ReportActionItem/MoneyRequestView.js index 4b69f14213a22..ee852d5c146aa 100644 --- a/src/components/ReportActionItem/MoneyRequestView.js +++ b/src/components/ReportActionItem/MoneyRequestView.js @@ -170,6 +170,7 @@ function MoneyRequestView({report, betas, parentReport, policyCategories, should diff --git a/src/components/ReportActionItem/ReportActionItemImage.js b/src/components/ReportActionItem/ReportActionItemImage.js index d5f9f7ed06b83..b5711d43abb99 100644 --- a/src/components/ReportActionItem/ReportActionItemImage.js +++ b/src/components/ReportActionItem/ReportActionItemImage.js @@ -18,7 +18,7 @@ import ROUTES from '@src/ROUTES'; const propTypes = { /** thumbnail URI for the image */ - thumbnail: PropTypes.string, + thumbnail: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), /** URI for the image or local numeric reference for the image */ image: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, @@ -28,12 +28,16 @@ const propTypes = { /* The transaction associated with this image, if any. Passed for handling eReceipts. */ transaction: transactionPropTypes, + + /** whether thumbnail is refer the local file or not */ + isLocalFile: PropTypes.bool, }; const defaultProps = { thumbnail: null, transaction: {}, enablePreviewModal: false, + isLocalFile: false, }; /** @@ -42,7 +46,7 @@ const defaultProps = { * and optional preview modal as well. */ -function ReportActionItemImage({thumbnail, image, enablePreviewModal, transaction}) { +function ReportActionItemImage({thumbnail, image, enablePreviewModal, transaction, isLocalFile}) { const {translate} = useLocalize(); const imageSource = tryResolveUrlFromApiRoot(image || ''); const thumbnailSource = tryResolveUrlFromApiRoot(thumbnail || ''); @@ -56,7 +60,7 @@ function ReportActionItemImage({thumbnail, image, enablePreviewModal, transactio ); - } else if (thumbnail) { + } else if (thumbnail && !isLocalFile) { receiptImageComponent = ( ); diff --git a/src/components/ReportActionItem/ReportActionItemImages.js b/src/components/ReportActionItem/ReportActionItemImages.js index e44e27bb7ec04..21d7c5fa3488c 100644 --- a/src/components/ReportActionItem/ReportActionItemImages.js +++ b/src/components/ReportActionItem/ReportActionItemImages.js @@ -15,7 +15,7 @@ const propTypes = { /** array of image and thumbnail URIs */ images: PropTypes.arrayOf( PropTypes.shape({ - thumbnail: PropTypes.string, + thumbnail: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), image: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), transaction: transactionPropTypes, }), @@ -74,7 +74,7 @@ function ReportActionItemImages({images, size, total, isHovered}) { return ( - {_.map(shownImages, ({thumbnail, image, transaction}, index) => { + {_.map(shownImages, ({thumbnail, image, transaction, isLocalFile}, index) => { const isLastImage = index === numberOfShownImages - 1; // Show a border to separate multiple images. Shown to the right for each except the last. @@ -88,6 +88,7 @@ function ReportActionItemImages({images, size, total, isHovered}) { {isLastImage && remaining > 0 && ( diff --git a/src/libs/ReceiptUtils.ts b/src/libs/ReceiptUtils.ts index 5ee177b8f8319..737e5ddc2e311 100644 --- a/src/libs/ReceiptUtils.ts +++ b/src/libs/ReceiptUtils.ts @@ -11,8 +11,9 @@ import * as FileUtils from './fileDownload/FileUtils'; type ThumbnailAndImageURI = { image: ImageSourcePropType | string; - thumbnail: string | null; + thumbnail: ImageSourcePropType | string | null; transaction?: Transaction; + isLocalFile?: boolean; }; type FileNameAndExtension = { @@ -65,7 +66,7 @@ function getThumbnailAndImageURIs(transaction: Transaction, receiptPath: string image = ReceiptSVG; } - return {thumbnail: null, image}; + return {thumbnail: image, image: path, isLocalFile: true}; } // eslint-disable-next-line import/prefer-default-export