Viewing File: /home/ubuntu/todaykat-frontend-base/src/components/landingPage/HomeBannerIndex.jsx

import React, { useState, useEffect } from "react";
import { Navbar, Container, Image, Nav, Row, Col } from "react-bootstrap";
import { Link } from "react-router-dom";
import "./Landing.css";
import { connect } from "react-redux";
import Slider from "react-slick";
import { withTranslation, useTranslation } from "react-multi-lang";
import { fetchBannersListStart } from "../store/actions/HomePageAction";
import BannerListLoader from "../Helper/BannerListLoader";
import CustomLazyLoad from "../Helper/CustomLazyLoad";

const HomeBannerIndex = (props) => {
  const t = useTranslation();

  const { bannerList } = props;

  useEffect(() => {
    props.dispatch(fetchBannersListStart());
  }, []);

  var settings = {
    dots: false,
    infinite: true,
    speed: 500,
    slidesToShow: 1,
    slidesToScroll: 1,
    adaptiveHeight: true,
  };

  return (
    <>
      <div className="home-banner-sec">
        {bannerList.loading ? (
          <BannerListLoader />
        ) : (
          <Container>
            {bannerList.data.banners && bannerList.data.banners.length > 0 ? (
              <div className="home-banner-content">

                <Slider {...settings}>
                  {bannerList.data.banners.map((banner, index) => (
                    <div>
                      <Row
                        className="align-items-center new-home-banner-sec"
                        key={index}
                      >
                        <Col md={6} className="resp-mrg-btm-xs">
                          <div className="home-banner-info">
                            <h1>{banner.title}</h1>
                            <p>{banner.description}</p>
                            <div className="default-btn-sec">
                              <a
                                href={banner.link}
                                target="_blank"
                                className="default-btn"
                              >
                                {t("shop_now")}
                              </a>
                            </div>
                          </div>
                        </Col>
                        <Col md={6}>
                          <div className="home-banner-img-sec">
                            <CustomLazyLoad
                              src={banner.picture}
                              placeholderSrc={
                                window.location.origin +
                                "/images/transparent.png"
                              }
                              classes="home-banner-img"
                              alt={banner.title}
                            />
                          </div>
                        </Col>
                      </Row>
                    </div>
                  ))}
                </Slider>
              </div>
            ) : null}
          </Container>
        )}
      </div>
    </>
  );
};

const mapStateToPros = (state) => ({
  bannerList: state.homepage.bannerList,
});

function mapDispatchToProps(dispatch) {
  return { dispatch };
}

export default connect(
  mapStateToPros,
  mapDispatchToProps
)(withTranslation(HomeBannerIndex));
Back to Directory File Manager