Slick Slider

Slick Slider is the most modern free mobile touch slider with hardware accelerated transitions and amazing native behavior For more details

Installing via npm
npm i react-slick
HTML Code
import React, { useEffect, useRef, useState } from "react";

//  Import Slick Slider
import Slider from 'react-slick';

//  Import Image
import testiIcon03 from "/assets/images/testimonial/testi-icon-03.png"
import testiIcon05 from "/assets/images/testimonial/testi-icon-05.png"

import author1 from "/assets/images/testimonial/author-1.png"
import author5 from "/assets/images/testimonial/author-5.png"
import { Container } from "react-bootstrap";

const Testimonial = (props) => {

    const { classNames } = props

    // --- SlickSlider Setting ---
    const sliderSettings1 = {
        infinite: true,
        speed: 500,
        slidesToShow: 3,
        slidesToScroll: 1,
        centerMode: true,
        arrows: false,
        responsive: [
            {
                breakpoint: 1024,
                settings: {
                    slidesToShow: 2,
                    slidesToScroll: 1,
                    infinite: true,
                    centerMode: true
                }
            },
            {
                breakpoint: 990,
                settings: {
                    slidesToShow: 2,
                    slidesToScroll: 1,
                    centerMode: false
                }
            },
            {
                breakpoint: 600,
                settings: {
                    slidesToShow: 2,
                    slidesToScroll: 1,
                    centerMode: false
                }
            },
            {
                breakpoint: 480,
                settings: {
                    slidesToShow: 1,
                    slidesToScroll: 1
                }
            }
        ],
    };


    const sliderSettings2 = {
        infinite: true,
        speed: 500,
        slidesToShow: 1,
        slidesToScroll: 1,
        arrows: false,
        responsive: [
            {
                breakpoint: 1024,
                settings: {
                    slidesToShow: 1,
                    slidesToScroll: 1,
                }
            },
            {
                breakpoint: 767,
                settings: {
                    slidesToShow: 1,
                    slidesToScroll: 1
                }
            },
            {
                breakpoint: 479,
                settings: {
                    slidesToShow: 1,
                    slidesToScroll: 1
                }
            }
        ]
    };
    const sliderSettings3 = {
        dots: true,
        infinite: true,
        speed: 500,
        centerMode: true,
        slidesToShow: 5,
        slidesToScroll: 1,
        arrows: false,

        responsive: [
            {
                breakpoint: 1024,
                settings: {
                    slidesToShow: 2,
                    slidesToScroll: 1,
                    centerMode: true
                },
            },
            {
                breakpoint: 990,
                settings: {
                    slidesToShow: 2,
                    slidesToScroll: 1,
                    centerMode: false
                },
            },
            {
                breakpoint: 600,
                settings: {
                    slidesToShow: 2,
                    slidesToScroll: 1,
                    centerMode: false
                },
            },
            {
                breakpoint: 480,
                settings: {
                    slidesToShow: 1,
                    slidesToScroll: 1,
                    centerMode: false
                },
            }
        ]
    };

    const [nav1, setNav1] = useState(null);
    const [nav2, setNav2] = useState(null);
    const [nav3, setNav3] = useState(null);
    let sliderRef1 = useRef(null);
    let sliderRef2 = useRef(null);
    let sliderRef3 = useRef(null);

    useEffect(() => {
        setNav1(sliderRef1);
        setNav2(sliderRef2);
        setNav3(sliderRef3);
    }, []);

    return (
        <>
            <section className={`section-padding testimonial-inner ${classNames}`}>
                <Container >
                    <Slider {...sliderSettings1} asNavFor={nav2} ref={slider => (sliderRef1 = slider)} className="custom-slick-banner">
                        <div className="text-center justify-content-center d-flex">
                            <img alt="image-testimonial" src={testiIcon05} />
                        </div>
                        <div className="text-center justify-content-center d-flex">
                            <img alt="image-testimonial" src={testiIcon03} />
                        </div>
                    </Slider>

                    <div className="testimonial-top">
                        <Slider{...sliderSettings2} asNavFor={nav3} ref={slider => (sliderRef2 = slider)}>
                            <div className="text-desc">
                                <p className="testimonial-desc h3 fw-normal text-center fst-italic ">Velocity is crucial in
                                    .....
                                </p>
                            </div>

                        </Slider>
                    </div>
                    {/* <div className="testimonial-thumbs2"> */}
                    <Slider className="testimonial-thumbs2" {...sliderSettings3} asNavFor={nav1}
                        ref={slider => (sliderRef3 = slider)}>
                        <div className="slick-slide">
                            <div className="testimonial-avtar d-flex justify-content-center gap-3">
                                <img alt="img-testimonial" className="img-fluid center-block img-testimonial" src={author5} />
                                <div className="author">
                                    <h5 className="title mb-2">Jason Roger</h5>
                                    <span className="designation">Designer</span>
                                </div>
                            </div>
                        </div>
                        <div className="slick-slide">
                            <div className="testimonial-avtar d-flex justify-content-center gap-3">
                                <img alt="img-testimonial" className="img-fluid center-block img-testimonial" src={author1} />
                                <div className="author">
                                    <h5 className="title mb-2">Jennifer Walker</h5>
                                    <span className="designation">Designer</span>
                                </div>
                            </div>
                        </div>
                    </Slider>
                    {/* </div> */}
                </Container>
            </section>
        </>
    )
}
export default Testimonial