"use client"; import { useEffect, useRef } from "react"; import Lenis from "lenis"; import { gsap } from "gsap"; import { ScrollTrigger } from "gsap/ScrollTrigger"; gsap.registerPlugin(ScrollTrigger); export function SmoothScrollProvider({ children, }: { children: React.ReactNode; }) { const lenisRef = useRef(null); useEffect(() => { const lenis = new Lenis({ duration: 1.2, easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)), // Expo ease smoothWheel: true, }); lenisRef.current = lenis; // Sincroniza Lenis com GSAP ScrollTrigger — critico para evitar dessync lenis.on("scroll", ScrollTrigger.update); gsap.ticker.add((time) => { lenis.raf(time * 1000); }); gsap.ticker.lagSmoothing(0); return () => { lenis.destroy(); gsap.ticker.remove((time) => lenis.raf(time * 1000)); }; }, []); return <>{children}; }