"use client"; import React, { useEffect, useRef } from "react"; import Lenis from "lenis"; export default function LenisProvider({ children, }: { children: React.ReactNode; }) { const lenisRef = useRef(null); useEffect(() => { // Initialize Lenis const lenis = new Lenis({ duration: 1.2, easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)), orientation: "vertical", gestureOrientation: "vertical", smoothWheel: true, wheelMultiplier: 1, touchMultiplier: 1.5, }); lenisRef.current = lenis; // RAF loop function raf(time: number) { lenis.raf(time); requestAnimationFrame(raf); } requestAnimationFrame(raf); // Bind clean-up return () => { lenis.destroy(); lenisRef.current = null; }; }, []); return <>{children}; }