fix(SW-272): fixed issue with image sizes and aspect ratio on cards mainly inside mega menu

This commit is contained in:
Erik Tiekstra
2024-09-27 13:38:56 +02:00
parent aa390bd171
commit d2121a3fed
4 changed files with 32 additions and 10 deletions

View File

@@ -23,6 +23,8 @@ export interface CardProps
heading?: string | null
bodyText?: string | null
backgroundImage?: ImageVaultAsset
imageHeight?: number
imageWidth?: number
onPrimaryButtonClick?: () => void
onSecondaryButtonClick?: () => void
}

View File

@@ -21,11 +21,20 @@ export default function Card({
className,
theme,
backgroundImage,
imageHeight,
imageWidth,
onPrimaryButtonClick,
onSecondaryButtonClick,
}: CardProps) {
const { buttonTheme, primaryLinkColor, secondaryLinkColor } = getTheme(theme)
imageHeight = imageHeight || 320
imageWidth =
imageWidth ||
(backgroundImage
? backgroundImage.dimensions.aspectRatio * imageHeight
: 420)
return (
<article
className={cardVariants({
@@ -39,8 +48,8 @@ export default function Card({
src={backgroundImage.url}
className={styles.image}
alt={backgroundImage.meta.alt || backgroundImage.title}
width={backgroundImage.dimensions.width || 420}
height={backgroundImage.dimensions.height || 320}
width={imageWidth}
height={imageHeight}
/>
</div>
)}

View File

@@ -105,9 +105,14 @@ export const imageVaultAssetTransformedSchema = imageVaultAssetSchema.transform(
const caption = rawData.Metadata?.find((meta) =>
meta.Name.includes("Title_")
)?.Value
const mediaConversion = rawData.MediaConversions[0]
const aspectRatio =
mediaConversion.FormatAspectRatio ||
mediaConversion.AspectRatio ||
mediaConversion.Width / mediaConversion.Height
return {
url: rawData.MediaConversions[0].Url,
url: mediaConversion.Url,
id: rawData.Id,
meta: {
alt,
@@ -115,9 +120,9 @@ export const imageVaultAssetTransformedSchema = imageVaultAssetSchema.transform(
},
title: rawData.Name,
dimensions: {
width: rawData.MediaConversions[0].Width,
height: rawData.MediaConversions[0].Height,
aspectRatio: rawData.MediaConversions[0].FormatAspectRatio,
width: mediaConversion.Width,
height: mediaConversion.Height,
aspectRatio,
},
}
}

View File

@@ -14,8 +14,14 @@ export function insertResponseToImageVaultAsset(
meta.Name.includes("Title_")
)?.Value
const mediaConversion = response.MediaConversions[0]
const aspectRatio =
mediaConversion.FormatAspectRatio ||
mediaConversion.AspectRatio ||
mediaConversion.Width / mediaConversion.Height
return {
url: response.MediaConversions[0].Url,
url: mediaConversion.Url,
id: response.Id,
meta: {
alt,
@@ -23,9 +29,9 @@ export function insertResponseToImageVaultAsset(
},
title: response.Name,
dimensions: {
width: response.MediaConversions[0].Width,
height: response.MediaConversions[0].Height,
aspectRatio: response.MediaConversions[0].FormatAspectRatio,
width: mediaConversion.Width,
height: mediaConversion.Height,
aspectRatio,
},
}
}