fix(SW-272): fixed issue with image sizes and aspect ratio on cards mainly inside mega menu
This commit is contained in:
@@ -23,6 +23,8 @@ export interface CardProps
|
|||||||
heading?: string | null
|
heading?: string | null
|
||||||
bodyText?: string | null
|
bodyText?: string | null
|
||||||
backgroundImage?: ImageVaultAsset
|
backgroundImage?: ImageVaultAsset
|
||||||
|
imageHeight?: number
|
||||||
|
imageWidth?: number
|
||||||
onPrimaryButtonClick?: () => void
|
onPrimaryButtonClick?: () => void
|
||||||
onSecondaryButtonClick?: () => void
|
onSecondaryButtonClick?: () => void
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,20 @@ export default function Card({
|
|||||||
className,
|
className,
|
||||||
theme,
|
theme,
|
||||||
backgroundImage,
|
backgroundImage,
|
||||||
|
imageHeight,
|
||||||
|
imageWidth,
|
||||||
onPrimaryButtonClick,
|
onPrimaryButtonClick,
|
||||||
onSecondaryButtonClick,
|
onSecondaryButtonClick,
|
||||||
}: CardProps) {
|
}: CardProps) {
|
||||||
const { buttonTheme, primaryLinkColor, secondaryLinkColor } = getTheme(theme)
|
const { buttonTheme, primaryLinkColor, secondaryLinkColor } = getTheme(theme)
|
||||||
|
|
||||||
|
imageHeight = imageHeight || 320
|
||||||
|
imageWidth =
|
||||||
|
imageWidth ||
|
||||||
|
(backgroundImage
|
||||||
|
? backgroundImage.dimensions.aspectRatio * imageHeight
|
||||||
|
: 420)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<article
|
<article
|
||||||
className={cardVariants({
|
className={cardVariants({
|
||||||
@@ -39,8 +48,8 @@ export default function Card({
|
|||||||
src={backgroundImage.url}
|
src={backgroundImage.url}
|
||||||
className={styles.image}
|
className={styles.image}
|
||||||
alt={backgroundImage.meta.alt || backgroundImage.title}
|
alt={backgroundImage.meta.alt || backgroundImage.title}
|
||||||
width={backgroundImage.dimensions.width || 420}
|
width={imageWidth}
|
||||||
height={backgroundImage.dimensions.height || 320}
|
height={imageHeight}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -105,9 +105,14 @@ export const imageVaultAssetTransformedSchema = imageVaultAssetSchema.transform(
|
|||||||
const caption = rawData.Metadata?.find((meta) =>
|
const caption = rawData.Metadata?.find((meta) =>
|
||||||
meta.Name.includes("Title_")
|
meta.Name.includes("Title_")
|
||||||
)?.Value
|
)?.Value
|
||||||
|
const mediaConversion = rawData.MediaConversions[0]
|
||||||
|
const aspectRatio =
|
||||||
|
mediaConversion.FormatAspectRatio ||
|
||||||
|
mediaConversion.AspectRatio ||
|
||||||
|
mediaConversion.Width / mediaConversion.Height
|
||||||
|
|
||||||
return {
|
return {
|
||||||
url: rawData.MediaConversions[0].Url,
|
url: mediaConversion.Url,
|
||||||
id: rawData.Id,
|
id: rawData.Id,
|
||||||
meta: {
|
meta: {
|
||||||
alt,
|
alt,
|
||||||
@@ -115,9 +120,9 @@ export const imageVaultAssetTransformedSchema = imageVaultAssetSchema.transform(
|
|||||||
},
|
},
|
||||||
title: rawData.Name,
|
title: rawData.Name,
|
||||||
dimensions: {
|
dimensions: {
|
||||||
width: rawData.MediaConversions[0].Width,
|
width: mediaConversion.Width,
|
||||||
height: rawData.MediaConversions[0].Height,
|
height: mediaConversion.Height,
|
||||||
aspectRatio: rawData.MediaConversions[0].FormatAspectRatio,
|
aspectRatio,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,14 @@ export function insertResponseToImageVaultAsset(
|
|||||||
meta.Name.includes("Title_")
|
meta.Name.includes("Title_")
|
||||||
)?.Value
|
)?.Value
|
||||||
|
|
||||||
|
const mediaConversion = response.MediaConversions[0]
|
||||||
|
const aspectRatio =
|
||||||
|
mediaConversion.FormatAspectRatio ||
|
||||||
|
mediaConversion.AspectRatio ||
|
||||||
|
mediaConversion.Width / mediaConversion.Height
|
||||||
|
|
||||||
return {
|
return {
|
||||||
url: response.MediaConversions[0].Url,
|
url: mediaConversion.Url,
|
||||||
id: response.Id,
|
id: response.Id,
|
||||||
meta: {
|
meta: {
|
||||||
alt,
|
alt,
|
||||||
@@ -23,9 +29,9 @@ export function insertResponseToImageVaultAsset(
|
|||||||
},
|
},
|
||||||
title: response.Name,
|
title: response.Name,
|
||||||
dimensions: {
|
dimensions: {
|
||||||
width: response.MediaConversions[0].Width,
|
width: mediaConversion.Width,
|
||||||
height: response.MediaConversions[0].Height,
|
height: mediaConversion.Height,
|
||||||
aspectRatio: response.MediaConversions[0].FormatAspectRatio,
|
aspectRatio,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user