diff --git a/components/TempDesignSystem/Card/card.ts b/components/TempDesignSystem/Card/card.ts index ba8a618a9..a2395c4f6 100644 --- a/components/TempDesignSystem/Card/card.ts +++ b/components/TempDesignSystem/Card/card.ts @@ -23,6 +23,8 @@ export interface CardProps heading?: string | null bodyText?: string | null backgroundImage?: ImageVaultAsset + imageHeight?: number + imageWidth?: number onPrimaryButtonClick?: () => void onSecondaryButtonClick?: () => void } diff --git a/components/TempDesignSystem/Card/index.tsx b/components/TempDesignSystem/Card/index.tsx index c4f414359..8d29226bf 100644 --- a/components/TempDesignSystem/Card/index.tsx +++ b/components/TempDesignSystem/Card/index.tsx @@ -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 (
)} diff --git a/server/routers/contentstack/schemas/imageVault.ts b/server/routers/contentstack/schemas/imageVault.ts index 6d8729c96..2e656a465 100644 --- a/server/routers/contentstack/schemas/imageVault.ts +++ b/server/routers/contentstack/schemas/imageVault.ts @@ -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, }, } } diff --git a/utils/imageVault.ts b/utils/imageVault.ts index d0dc7d086..f04b7fdf2 100644 --- a/utils/imageVault.ts +++ b/utils/imageVault.ts @@ -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, }, } }