import React, { useRef, useState } from "react"; import { CTACardProps } from "../../models/components"; import "./CTACard-styles.scss"; import Tag from "../tag/tag"; import Button from "../button/Button"; import { ImagePlaceholder } from "../../assets/images/icons"; import clsx from "clsx"; const CTACard: React.FC = ({ variant = "PRIMARY", imageSrc, title, description, tag, meta, score, onClick, hoverEffect = true, dimmed = false, actionButtons, showActionButtons, scaleDown, rtl, type, lazyLoad = false, showImage = true, }) => { const [isHovered, setIsHovered] = useState(false); const selectRandomColor = () => { const colors = [ "#98CA3C", "#36C6F4", "#84459A", "#ED1B68", "#F26821", "#FFCD04", ]; return colors[Math.floor(Math.random() * colors.length)]; }; const randomColorRef = useRef(selectRandomColor()); const handleMouseEnter = () => { setIsHovered(true); }; const handleMouseLeave = () => { setIsHovered(false); }; const renderImage = () => { if (imageSrc) { return ( Card ); } if (variant !== "TERTIARY") { return ImagePlaceholder; } }; const renderTitle = () => { return
{title}
; }; const renderTag = () => { return ( tag && ( ) ); }; const renderType = () => { return ( type && ( ) ); }; const renderMeta = () => { return meta &&
{meta}
; }; const renderDescription = () => { return ( description &&
{description}
); }; const renderOverlay = () => { return dimmed &&
; }; const renderActionButtons = () => { return ( actionButtons && actionButtons.length > 0 && (
{actionButtons.map((button, index) => ( ))} {isHovered && score && (

Page Views: {score}

)}
) ); }; const handleClick = (event: any) => { if ( event?.target?.className.includes("button-root") || event?.target?.className.includes( "CTACard-actionButtonsContainer--overlay" ) ) { return; } onClick && onClick(event); }; return (
{showActionButtons && renderActionButtons()} {variant === "PRIMARY" && (
{renderTag()} {renderType()} {renderMeta()}
{renderTitle()}
{showImage && (
{renderImage()}
)}
)} {variant === "PRIMARY_VERTICAL" && ( <> {renderOverlay()}
{renderImage()}
{renderTag()} {renderMeta()}
{renderTitle()}
)} {variant === "SECONDARY" && ( <> {renderOverlay()}
{imageSrc ? (
{renderImage()}
) : (
)}
# {renderTitle()}
)} {variant === "TERTIARY" && ( <> {renderOverlay()}
{renderImage()}
{renderTitle()} {renderDescription()}
)}
); }; export default CTACard;