// app/providers/FadeContext.tsx 'use client'; import { createContext, useContext, useRef, MutableRefObject } from 'react'; export type FadeFn = (path: string) => void; /* ① Context enthält nur ein Ref-Objekt */ const FadeCtx = createContext | null>(null); /* Hook, um die aktuelle Funktion aufzurufen */ export function useFade(): FadeFn { const ref = useContext(FadeCtx); return ref ? ref.current : () => {}; } /* Provider legt das Ref an */ export function FadeProvider({ children }: { children: React.ReactNode }) { const fnRef = useRef(() => {}); // initial: noop return {children}; } /* Hook, den PageTransition benutzt, um seine Funktion zu hinterlegen */ export function useRegisterFade(fn: FadeFn) { const ref = useContext(FadeCtx); if (ref) ref.current = fn; }