"use client" import { useEffect, useRef } from "react" const callbacks = new Set<() => void>() if (typeof window !== "undefined") { window.addEventListener("popstate", () => { callbacks.forEach((callback) => callback()) }) } export default function usePopStateHandler( callback: () => void, enabled = true ) { const callbackRef = useRef(callback) callbackRef.current = callback useEffect(() => { if (!enabled) { return } const handler = () => callbackRef.current() callbacks.add(handler) return () => { callbacks.delete(handler) } }, [enabled]) }