'use client';

import { useEffect, useRef } from 'react';
import Lenis from 'lenis';
import { useEditMode } from '@/context/EditModeContext';

export function SmoothScroll() {
  const lenisRef = useRef<Lenis | null>(null);
  const { adminPanelOpen } = useEditMode();

  useEffect(() => {
    const lenis = new Lenis({
      duration: 1.2,
      easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)),
      smoothWheel: true,
      wheelMultiplier: 1,
      touchMultiplier: 2,
    });

    lenisRef.current = lenis;

    function raf(time: number) {
      lenis.raf(time);
      requestAnimationFrame(raf);
    }

    requestAnimationFrame(raf);

    return () => {
      lenis.destroy();
      lenisRef.current = null;
    };
  }, []);

  useEffect(() => {
    if (!lenisRef.current) return;
    if (adminPanelOpen) {
      lenisRef.current.stop();
    } else {
      lenisRef.current.start();
    }
  }, [adminPanelOpen]);

  return null;
}
