import React, { useState } from 'react';
import { Prompt } from 'react-router-dom';
import usePreventLeave from 'react-hook-use-prevent-leave';
function PageShouldBeBlocked(): React.ReactElement {
/* State */
const [blockPage, setBlockPage] = useState<boolean>(true);
/* Function */
function togglePageBlock(): void {
setBlockPage((prev) => !prev);
}
/* Hook */
usePreventLeave(blockPage);
// Or just call usePreventLeave() without passing any params, this mean the page will always be blocked.
/* Main */
return (
<React.Fragment>
<Prompt when={blockPage} message={'Confirm to leave this page?'} />
<div>This page is {!blockPage && 'NOT'} block now.</div>
<button onClick={togglePageBlock}>Click to toggle block or not.</button>
</React.Fragment>
);
}
export default PageShouldBeBlocked;