import { useRouter } from "next/router"; import { useEffect } from "react"; import type { PromptProps } from "@pankod/refine-core"; export const Prompt: React.FC = ({ message, when, setWarnWhen, }) => { const router = useRouter(); useEffect(() => { const routeChangeStart = () => { if (when) { const allowTransition = window.confirm(message); if (allowTransition) { setWarnWhen?.(false); } else { router.events.emit("routeChangeError"); throw "Abort route change due to unsaved changes prompt. Ignore this error."; } } }; router.events.on("routeChangeStart", routeChangeStart); return () => router.events.off("routeChangeStart", routeChangeStart); }, [when]); return null; };