diff --git a/app/screens/image_preview/image_preview.js b/app/screens/image_preview/image_preview.js index 58d861708..28ac74c6e 100644 --- a/app/screens/image_preview/image_preview.js +++ b/app/screens/image_preview/image_preview.js @@ -338,10 +338,12 @@ export default class ImagePreview extends PureComponent { renderImageComponent = (imageProps, imageDimensions) => { if (imageDimensions) { + const {deviceHeight, deviceWidth} = this.props; const {height, width} = imageDimensions; const {style, ...otherProps} = imageProps; + const statusBar = DeviceTypes.IS_IPHONE_X ? 0 : 20; const flattenStyle = StyleSheet.flatten(style); - const calculatedDimensions = calculateDimensions(height, width, flattenStyle.width, flattenStyle.height); + const calculatedDimensions = calculateDimensions(height, width, deviceWidth, deviceHeight - statusBar); const imageStyle = {...flattenStyle, ...calculatedDimensions}; return ( @@ -376,12 +378,13 @@ export default class ImagePreview extends PureComponent { renderVideoPreview = (file) => { const {deviceHeight, deviceWidth, theme} = this.props; + const statusBar = DeviceTypes.IS_IPHONE_X ? 0 : 20; return ( diff --git a/app/utils/images.js b/app/utils/images.js index bc284a208..070fb6397 100644 --- a/app/utils/images.js +++ b/app/utils/images.js @@ -34,6 +34,9 @@ export const calculateDimensions = (height, width, viewPortWidth = 0, viewPortHe ) { imageHeight = IMAGE_MIN_DIMENSION; imageWidth = imageHeight * heightRatio; + } else if (viewPortHeight && imageHeight > viewPortHeight) { + imageHeight = viewPortHeight; + imageWidth = imageHeight * heightRatio; } return { diff --git a/app/utils/images.test.js b/app/utils/images.test.js index d32b75a05..554018c9c 100644 --- a/app/utils/images.test.js +++ b/app/utils/images.test.js @@ -62,4 +62,9 @@ describe('Images calculateDimensions', () => { expect(height).toEqual(45); expect(width).toEqual(310); }); + + it('Set the viewPort height defined should return the image capped to the viewport', () => { + const {height} = calculateDimensions(1334, 750, PORTRAIT_VIEWPORT, 500); + expect(height).toEqual(500); + }); });