import React from "react"; import { Card, Row, Col, Button } from "react-bootstrap"; import { CAMPAIGN_RANK_BLOCKS, getCampaignCardGradientStyle, getCampaignRankBlockAppearance, getCampaignRankIconStyle, getCampaignRankIconTag, readCampaignField, readCampaignRankDisplay, } from "../../util/campaignHelpers"; import CustomImage from "../UI/CustomImage/CustomImage"; import SectionHeading from "../UI/SectionHeading/SectionHeading"; import CustomIcon from "../CustomIcon/CustomIcon"; import "./DashboardCampaignsCard.css"; function getCampaignImage(campaign) { const icon = campaign?.icon ?? campaign?.image; if (icon != null && String(icon).trim() !== "") return icon; return "/img/campaign-logo2.png"; } /** * Shared campaign header + rank tiles (dashboard swiper and campaign details). */ function CampaignSummaryCard({ campaign, onHeaderClick, onRankClick, showNavigateButton = false, className = "", }) { const campaignImage = getCampaignImage(campaign); const campaignName = campaign?.name || campaign?.title || "Campaign"; const cardBackgroundStyle = getCampaignCardGradientStyle(campaign); const totalPoints = readCampaignField( campaign, ["total_points", "totalPoints", "overall_points", "overallPoints", "points"], "-" ); const campaignMessage = campaign?.message && campaign?.message !== "" ? campaign?.message : ""; return (
{campaignName}
Total Points
{totalPoints}
{/* {showNavigateButton ? ( ) : null} */}
{CAMPAIGN_RANK_BLOCKS.map((block) => { const { className: rankClassName, style } = getCampaignRankBlockAppearance( campaign, block ); const iconWrapperStyle = getCampaignRankIconStyle(block); return ( ); })} {/* Keep up the amazing work! */} {campaignMessage && ( {campaignMessage} )}
); } export default CampaignSummaryCard;