import { useState } from "react"; import { PrefixDialog } from "@/app/admin/prefixes/prefix-dialog"; import { confirmUnsavedNavigation, useUnsavedChanges, } from "@/hooks/use-unsaved-changes"; export function UnsavedHarness() { const [value, setValue] = useState(""); const [open, setOpen] = useState(false); const [failSave, setFailSave] = useState(false); const [saved, setSaved] = useState(false); const [navigated, setNavigated] = useState(false); const guard = useUnsavedChanges(value !== "", "Discard unsaved changes?"); return ( <> Leave editor Same page Email {saved &&

Working value saved

} {navigated &&

Navigation allowed

} setOpen(false)} editPrefix={null} onSave={async () => { if (failSave) return false; setSaved(true); return true; }} /> ); }