import React from 'react'; import PropTypes from 'prop-types'; import { useIntl } from '@openedx/frontend-base'; import { Badge } from '@openedx/paragon'; import track from '../../../tracking'; import { reduxHooks } from '../../../hooks'; import verifiedRibbon from '../../../assets/verified-ribbon.png'; import useActionDisabledState from './hooks'; import messages from '../messages'; const { courseImageClicked } = track.course; export const CourseCardImage = ({ cardId, orientation }) => { const { formatMessage } = useIntl(); const { bannerImgSrc } = reduxHooks.useCardCourseData(cardId); const { homeUrl } = reduxHooks.useCardCourseRunData(cardId); const { isVerified } = reduxHooks.useCardEnrollmentData(cardId); const { disableCourseTitle } = useActionDisabledState(cardId); const handleImageClicked = reduxHooks.useTrackCourseEvent(courseImageClicked, cardId, homeUrl); const wrapperClassName = `pgn__card-wrapper-image-cap d-inline-block overflow-visible ${orientation}`; const image = ( <> {formatMessage(messages.bannerAlt)} { isVerified && ( {formatMessage(messages.verifiedBanner)} {formatMessage(messages.verifiedBannerRibbonAlt)} ) } ); return disableCourseTitle ? (
{image}
) : ( {image} ); }; CourseCardImage.propTypes = { cardId: PropTypes.string.isRequired, orientation: PropTypes.string.isRequired, }; CourseCardImage.defaultProps = {}; export default CourseCardImage;