2021-09-08 07:35:36 +00:00
|
|
|
import React, { useState } from "react";
|
2021-06-30 15:10:16 +00:00
|
|
|
import PropTypes from "prop-types";
|
2021-07-01 08:52:56 +00:00
|
|
|
import BannerWrapper from "./styled-campaigns-banner";
|
2021-06-30 15:10:16 +00:00
|
|
|
|
|
|
|
import Button from "../button";
|
2021-07-01 08:52:56 +00:00
|
|
|
import Text from "../text";
|
2021-09-08 07:35:36 +00:00
|
|
|
import Loaders from "@appserver/common/components/Loaders";
|
2021-06-30 15:10:16 +00:00
|
|
|
|
|
|
|
const onButtonClick = (url) => {
|
|
|
|
window.location = url;
|
|
|
|
};
|
|
|
|
|
|
|
|
const CampaignsBanner = (props) => {
|
2021-06-30 21:28:58 +00:00
|
|
|
const { headerLabel, subHeaderLabel, img, btnLabel, link } = props;
|
2021-09-08 07:35:36 +00:00
|
|
|
const [imageLoad, setImageLoad] = useState(false);
|
|
|
|
|
|
|
|
const handleImageLoaded = () => {
|
|
|
|
setImageLoad(true);
|
|
|
|
};
|
|
|
|
|
2021-09-01 12:25:20 +00:00
|
|
|
const onMouseDown = (e) => {
|
|
|
|
e.preventDefault();
|
|
|
|
};
|
|
|
|
|
2021-06-30 15:10:16 +00:00
|
|
|
return (
|
|
|
|
<BannerWrapper>
|
2021-06-30 21:28:58 +00:00
|
|
|
<a href={link}>
|
2021-07-01 09:23:20 +00:00
|
|
|
<Text fontWeight="700" fontSize="13px">
|
2021-07-01 08:52:56 +00:00
|
|
|
{headerLabel}
|
|
|
|
</Text>
|
2021-07-01 12:18:02 +00:00
|
|
|
<Text className="banner-sub-header" fontWeight="500" fontSize="12px">
|
2021-07-01 08:52:56 +00:00
|
|
|
{subHeaderLabel}
|
|
|
|
</Text>
|
|
|
|
|
2021-09-08 07:35:36 +00:00
|
|
|
{!imageLoad && <Loaders.Rectangle height="140px" borderRadius="5px" />}
|
2021-09-08 11:36:10 +00:00
|
|
|
<img src={img} onMouseDown={onMouseDown} onLoad={handleImageLoaded} />
|
2021-06-30 21:28:58 +00:00
|
|
|
</a>
|
2021-06-30 15:10:16 +00:00
|
|
|
|
|
|
|
<Button
|
|
|
|
className="banner-btn"
|
2021-07-27 09:47:55 +00:00
|
|
|
primary
|
2021-07-01 08:23:39 +00:00
|
|
|
size="medium"
|
2021-06-30 15:10:16 +00:00
|
|
|
isDisabled={false}
|
2021-07-01 07:51:47 +00:00
|
|
|
disableHover={true}
|
2021-06-30 15:10:16 +00:00
|
|
|
label={btnLabel}
|
2021-06-30 21:28:58 +00:00
|
|
|
onClick={() => onButtonClick(link)}
|
2021-06-30 15:10:16 +00:00
|
|
|
/>
|
|
|
|
</BannerWrapper>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
CampaignsBanner.propTypes = {
|
|
|
|
id: PropTypes.string,
|
|
|
|
className: PropTypes.string,
|
|
|
|
style: PropTypes.object,
|
|
|
|
headerLabel: PropTypes.string,
|
2021-06-30 21:28:58 +00:00
|
|
|
subHeaderLabel: PropTypes.string,
|
2021-06-30 15:10:16 +00:00
|
|
|
img: PropTypes.string,
|
|
|
|
btnLabel: PropTypes.string,
|
2021-06-30 21:28:58 +00:00
|
|
|
link: PropTypes.string,
|
2021-06-30 15:10:16 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
CampaignsBanner.defaultProps = {
|
|
|
|
id: undefined,
|
|
|
|
className: undefined,
|
|
|
|
style: undefined,
|
|
|
|
};
|
|
|
|
|
|
|
|
export default CampaignsBanner;
|