logic for the click on dot
This commit is contained in:
parent
98cefa91ef
commit
b00bbf27e6
|
|
@ -1,10 +1,33 @@
|
||||||
import { FC } from "react";
|
import { FC, useCallback, useEffect, useState } from "react";
|
||||||
import useEmblaCarousel from "embla-carousel-react";
|
import useEmblaCarousel from "embla-carousel-react";
|
||||||
import { Container } from "@/components/layout";
|
import { Container } from "@/components/layout";
|
||||||
import { OfferCard } from "../";
|
import { EmblaDots, OfferCard } from "../";
|
||||||
|
|
||||||
export const HomeOffers: FC = () => {
|
export const HomeOffers: FC = () => {
|
||||||
const [emblaRef] = useEmblaCarousel({ align: "start" });
|
const [emblaRef, emblaApi] = useEmblaCarousel({ align: "start" });
|
||||||
|
const [activeIndex, setActiveIndex] = useState(0);
|
||||||
|
|
||||||
|
const scrollTo = useCallback(
|
||||||
|
(index: number) => {
|
||||||
|
if (emblaApi) {
|
||||||
|
emblaApi.scrollTo(index);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[emblaApi]
|
||||||
|
);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!emblaApi) return;
|
||||||
|
|
||||||
|
const onSelect = () => {
|
||||||
|
setActiveIndex(emblaApi.selectedScrollSnap());
|
||||||
|
};
|
||||||
|
|
||||||
|
emblaApi.on("select", onSelect);
|
||||||
|
return () => {
|
||||||
|
emblaApi.off("select", onSelect);
|
||||||
|
};
|
||||||
|
}, [emblaApi]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="bg-surface_high py-10 relative overflow-hidden">
|
<section className="bg-surface_high py-10 relative overflow-hidden">
|
||||||
|
|
@ -20,10 +43,17 @@ export const HomeOffers: FC = () => {
|
||||||
<OfferCard
|
<OfferCard
|
||||||
img="/offer-2.png"
|
img="/offer-2.png"
|
||||||
className="embla__slide flex-[0_0_300px] md:flex-[0_0_600px]"
|
className="embla__slide flex-[0_0_300px] md:flex-[0_0_600px]"
|
||||||
title="Ознакомьтесь с планом выставки ITSE 2025"
|
title="Ознакомьтесь с планом выставки TurkmenTextile Expo 2025"
|
||||||
text="Как выбрать лучшее место на выставке? Вы всегда должны помнить, что удачное расположение выставочной экспозиции повышает Ваши шансы привлечь внимание Ваших потенциальных клиентов"
|
text="Как выбрать лучшее место на выставке? Вы всегда должны помнить, что удачное расположение выставочной экспозиции повышает Ваши шансы привлечь внимание Ваших потенциальных клиентов"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<EmblaDots
|
||||||
|
className="lg:hidden"
|
||||||
|
scrollTo={scrollTo}
|
||||||
|
active={activeIndex}
|
||||||
|
slides={2}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</Container>
|
</Container>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue