Optional
blocker: boolean | HistoryBlockerA history navigation blocker or a boolean that indicates whether blocker is blocked or not.
A pending navigation transaction that must be cancelled or proceeded. Or null
if there's no blocked
navigation transaction.
useHistoryBlocker(transaction => {
return hasUnsavedChanges && !confirm('Discard unsaved changes?')
});
useHistoryBlocker(transaction => {
if (!hasUnsavedChanges) {
// No unsaved changes, proceed with navigation
transaction.proceed();
return;
}
if (!confirm('Discard unsaved changes?')) {
// User decided to keep unsaved changes
transaction.cancel();
}
});
const transaction = useHistoryBlocker(() => hasUnsavedChanges);
// or
const transaction = useHistoryBlocker(hasUnsavedChanges);
// or
const transaction = useHistoryBlocker();
transaction && (
<dialog open={true}>
<p>{'Discard unsaved changes?'}</p>
<button onClick={transaction.proceed}>{'Discard'}</button>
<button onClick={transaction.cancel}>{'Cancel'}</button>
</dialog>
)
Registers a blocker that prevents history navigation.