A Component for the react-router-dom 6 / react-router 7 Prompt. Allows to create more flexible dialogs.
Please follow Note section for more details on react-router support
✨ Demo
🏠 Homepage
React-router-dom >= 7 and shall be ideally used with data routers
pnpm add react-router-promptor with other package manager like yarn
yarn add react-router-prompt<ReactRouterPrompt when={isDirty}>
{({ isActive, onConfirm, onCancel }) => (
<Modal show={isActive}>
<div>
<p>Do you really want to leave?</p>
<button onClick={onCancel}>Cancel</button>
<button onClick={onConfirm}>Ok</button>
</div>
</Modal>
)}
</ReactRouterPrompt>-
when:boolean|BlockerFunctionBlockerFunction = (args: { currentLocation: Location nextLocation: Location historyAction: HistoryAction }) => boolean
-
beforeConfirm(nextLocation?: Location):Promise<unknown>(Optional) -
beforeCancel():Promise<unknown>(Optional)
isActive:BooleanonConfirm(nextLocation?: Location):voidonCancel():voidnextLocation:Location | undefined
This version works with react-router-dom >=v7 or react-router >=v7 and shall be ideally used with data routers
-
For react-router support
(v7)please installv0.8.x -
For react-router-dom support
(v6.19.x - v6.28.1)please installv0.7.x -
For react-router-dom support
(v6.7.x - v6.18.x)please installv0.5.4 -
For react-router-dom support
(v6 - v6.2.x)please installv0.3.0
Skipped support in middle due to breaking changes on react-router apis
Contributions, issues and feature requests are always welcome! Feel free to check issues page.
- Inspiration from react-router-navigation-prompt
- Gist: https://gist.github.com/rmorse/426ffcc579922a82749934826fa9f743
Give a ⭐️ if this project helped you!
Copyright © 2023 Shyam Gupta ([email protected]) This project is MIT licensed.
- Website: sshyam-gupta.space
- Twitter: @shyamm06
- GitHub: @sshyam-gupta
- LinkedIn: @shyam-gupta-66463a62