22
33import { useRef , useState , useEffect , useCallback } from "react" ;
44import Autoplay from "embla-carousel-autoplay" ;
5+ import WheelGestures from "embla-carousel-wheel-gestures" ;
56import { Sparkles } from "lucide-react" ;
67import {
78 Carousel ,
@@ -25,14 +26,16 @@ export type FeaturedJargonCarouselItem = {
2526 comment_count : number ;
2627} ;
2728
29+ const autoplayPlugin = Autoplay ( { delay : 2000 , stopOnInteraction : true } ) ;
30+ const wheelGesturesPlugin = WheelGestures ( { forceWheelAxis : "x" } ) ;
31+
2832export default function FeaturedJargonCarousel ( {
2933 featuredJargons,
3034 className,
3135} : {
3236 featuredJargons : FeaturedJargonCarouselItem [ ] ;
3337 className ?: string ;
3438} ) {
35- const plugin = useRef ( Autoplay ( { delay : 2000 , stopOnInteraction : true } ) ) ;
3639 const [ api , setApi ] = useState < CarouselApi > ( ) ;
3740 const [ canScrollPrev , setCanScrollPrev ] = useState ( false ) ;
3841 const [ canScrollNext , setCanScrollNext ] = useState ( false ) ;
@@ -130,10 +133,10 @@ export default function FeaturedJargonCarousel({
130133 </ h2 >
131134 < Carousel
132135 setApi = { setApi }
133- plugins = { [ plugin . current ] }
136+ plugins = { [ autoplayPlugin , wheelGesturesPlugin ] }
134137 className = "relative w-full"
135- onMouseEnter = { plugin . current . stop }
136- onMouseLeave = { plugin . current . reset }
138+ onMouseEnter = { autoplayPlugin . stop }
139+ onMouseLeave = { autoplayPlugin . reset }
137140 >
138141 { /* Left fade overlay */ }
139142 { canScrollPrev && (
0 commit comments