Make image size constrained by height when using the ImageSize.Large option (#7171)

This commit is contained in:
Timo 2021-11-24 15:32:47 +01:00 committed by GitHub
parent d7f3d2791a
commit a0e8c29d85
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -379,13 +379,15 @@ export default class MImageBody extends React.Component<IBodyProps, IState> {
// check for any height constraints
const imageSize = SettingsStore.getValue("Images.size") as ImageSize;
const suggestedAndPossibleWidth = Math.min(suggestedImageSize(imageSize).w, infoWidth);
const suggestedAndPossibleHeight = Math.min(suggestedImageSize(imageSize).h, infoHeight);
const aspectRatio = infoWidth / infoHeight;
let maxWidth;
let maxHeight;
const maxHeightConstraint = forcedHeight || this.props.maxImageHeight || undefined;
if (maxHeightConstraint && maxHeightConstraint * aspectRatio < suggestedAndPossibleWidth) {
const maxHeightConstraint = forcedHeight || this.props.maxImageHeight || suggestedAndPossibleHeight;
if (maxHeightConstraint * aspectRatio < suggestedAndPossibleWidth || imageSize === ImageSize.Large) {
// width is dictated by the maximum height that was defined by the props or the function param `forcedHeight`
// If the thumbnail size is set to Large, we always let the size be dictated by the height.
maxWidth = maxHeightConstraint * aspectRatio;
// there is no need to check for infoHeight here since this is done with `maxHeightConstraint * aspectRatio < suggestedAndPossibleWidth`
maxHeight = maxHeightConstraint;