@@ -577,6 +586,7 @@ const BaseLearningResourceCard: React.FC = ({
src={imageSrc}
alt={imageAlt}
{...getImageDimensions(size, isMedia)}
+ {...(imageHeight !== undefined ? { height: imageHeight } : {})}
/>
)}
@@ -627,7 +637,9 @@ const BaseLearningResourceCard: React.FC = ({
))}
- {startDate ? (
+ {footerLabel ? (
+ footerLabel
+ ) : startDate ? (
<>
{startLabel && }
{startDate}
diff --git a/frontends/ol-components/src/components/Card/Card.tsx b/frontends/ol-components/src/components/Card/Card.tsx
index f98a2d803f..2fd7cca6f6 100644
--- a/frontends/ol-components/src/components/Card/Card.tsx
+++ b/frontends/ol-components/src/components/Card/Card.tsx
@@ -15,7 +15,7 @@ import { Link } from "../Link/Link"
import { default as NextImage, ImageProps as NextImageProps } from "next/image"
import { truncateText } from "../TruncateText/TruncateText"
-export type Size = "small" | "medium"
+export type Size = "small" | "compact" | "medium"
type LinkableProps = {
href?: string
@@ -76,6 +76,7 @@ export const BaseContainer = styled.div<{ display?: CSSProperties["display"] }>(
)
const CONTAINER_WIDTHS: Record = {
small: 192,
+ compact: 235,
medium: 300,
}
const Container = styled(BaseContainer)<{ size?: Size }>(({ size }) => [
diff --git a/frontends/ol-components/src/components/LearningResourceCard/LearningResourceCard.tsx b/frontends/ol-components/src/components/LearningResourceCard/LearningResourceCard.tsx
index 93fd4423d8..dc063dc289 100644
--- a/frontends/ol-components/src/components/LearningResourceCard/LearningResourceCard.tsx
+++ b/frontends/ol-components/src/components/LearningResourceCard/LearningResourceCard.tsx
@@ -27,6 +27,7 @@ interface LearningResourceCardProps {
className?: string
size?: Size
isMedia?: boolean
+ imageHeight?: number
href?: string
onAddToLearningPathClick?: ResourceIdCallback | null
onAddToUserListClick?: ResourceIdCallback | null
@@ -34,6 +35,7 @@ interface LearningResourceCardProps {
inLearningPath?: boolean
onClick?: React.MouseEventHandler
headingLevel?: number
+ footerLabel?: string
list?: boolean
condensed?: boolean
}
@@ -44,6 +46,7 @@ const LearningResourceCard: React.FC = ({
className,
size = "medium",
isMedia = false,
+ imageHeight,
href,
onAddToLearningPathClick,
onAddToUserListClick,
@@ -51,6 +54,7 @@ const LearningResourceCard: React.FC = ({
inUserList,
onClick,
headingLevel = 6,
+ footerLabel,
list = false,
condensed = false,
}) => {
@@ -78,6 +82,7 @@ const LearningResourceCard: React.FC = ({
resource={resource}
className={className}
href={href}
+ footerLabel={footerLabel}
onAddToLearningPathClick={onAddToLearningPathClick}
onAddToUserListClick={onAddToUserListClick}
inUserList={inUserList}
@@ -150,11 +155,13 @@ const LearningResourceCard: React.FC = ({
headingLevel={headingLevel}
imageSrc={resource.image?.url || DEFAULT_RESOURCE_IMG}
imageAlt={resource.image?.alt ?? ""}
+ imageHeight={imageHeight}
title={resource.title}
resourceType={readableType}
coursePrice={prices.course.display}
certificatePrice={prices.certificate.display}
hasCertificate={resource.certification}
+ footerLabel={footerLabel}
startLabel={startLabel}
startDate={formattedDate}
actions={actions}
diff --git a/frontends/ol-components/src/components/LearningResourceCard/LearningResourceListCard.tsx b/frontends/ol-components/src/components/LearningResourceCard/LearningResourceListCard.tsx
index 10ec68b8b4..a900c4d338 100644
--- a/frontends/ol-components/src/components/LearningResourceCard/LearningResourceListCard.tsx
+++ b/frontends/ol-components/src/components/LearningResourceCard/LearningResourceListCard.tsx
@@ -137,6 +137,7 @@ interface LearningResourceListCardProps {
inUserList?: boolean
inLearningPath?: boolean
draggable?: boolean
+ footerLabel?: string
onClick?: React.MouseEventHandler
headingLevel?: number
}
@@ -151,6 +152,7 @@ const LearningResourceListCard: React.FC = ({
editMenu,
inLearningPath,
inUserList,
+ footerLabel,
draggable,
onClick,
headingLevel = 6,
@@ -194,13 +196,16 @@ const LearningResourceListCard: React.FC = ({
})
}
- const footerContent = (
-
-
-
-
-
- )
+ const footerContent =
+ resource.resource_type === ResourceTypeEnum.Podcast ? (
+ footerLabel
+ ) : (
+
+
+
+
+
+ )
return (