import { createContext, useContext, useEffect, useRef, useState } from "react"; import { SaturnEffect } from "@/lib/effects/saturn"; const SaturnEffectContext = createContext(null); export function useSaturnEffect() { return useContext(SaturnEffectContext); } export function ParticleBackground({ children, }: { children?: React.ReactNode; }) { const canvasRef = useRef(null); const [effect, setEffect] = useState(null); useEffect(() => { const canvas = canvasRef.current; if (!canvas) return; let saturnEffect: SaturnEffect | null = null; try { saturnEffect = new SaturnEffect(canvas); setEffect(saturnEffect); } catch (err) { console.warn("SaturnEffect initialization failed:", err); } const resizeHandler = () => { saturnEffect?.resize(window.innerWidth, window.innerHeight); }; window.addEventListener("resize", resizeHandler); return () => { window.removeEventListener("resize", resizeHandler); saturnEffect?.destroy(); setEffect(null); }; }, []); return ( {children} ); } export default ParticleBackground;