fkhadra / fkhadra/react-toastify
Promise notifications stuck in 'pending' state if they resolve before they pop out of the notification queue (w/ limit on ToastContainer)
- Dominant language
- TypeScript
- Stars
- 13.4k
- Forks
- 741
- PR merge metrics
- No merged PRs in 30d
Description
**Do you want to request a *feature* or report a *bug*?**
Bug
**What is the current behavior?**
The promise notification gets stuck pending if it solves while in the notification queue on a ToastContainer with a limit.
**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Your bug will get fixed much faster if we can run your code and it doesn't have dependencies other than React. Paste the link to your CodeSandbox (https://codesandbox.io/s/new) example below:**
[CodeSandbox Preview Link](https://codesandbox.io/p/sandbox/cranky-khayyam-d85qxy?layout=%257B%2522sidebarPanel%2522%253A%2522EXPLORER%2522%252C%2522rootPanelGroup%2522%253A%257B%2522direction%2522%253A%2522horizontal%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522id%2522%253A%2522ROOT_LAYOUT%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522cm0r0uhob00062a6ajejx8iq2%2522%252C%2522sizes%2522%253A%255B100%255D%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522EDITOR%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522id%2522%253A%2522cm0r0uhob00022a6axs0b7n6m%2522%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522SHELLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522id%2522%253A%2522cm0r0uhob00032a6aagplpjw9%2522%257D%255D%252C%2522sizes%2522%253A%255B100%255D%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522DEVTOOLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522id%2522%253A%2522cm0r0uhob00052a6apuvl2mnu%2522%257D%255D%252C%2522sizes%2522%253A%255B100%255D%257D%255D%252C%2522sizes%2522%253A%255B50%252C50%255D%257D%252C%2522tabbedPanels%2522%253A%257B%2522cm0r0uhob00022a6axs0b7n6m%2522%253A%257B%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cm0r0uhob00012a6awvs5fmka%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522filepath%2522%253A%2522%252Fsrc%252Findex.js%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%252C%257B%2522id%2522%253A%2522cm0r0w10600022a694p6jbipm%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522filepath%2522%253A%2522%252Fsrc%252Fstyles.css%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%252C%257B%2522id%2522%253A%2522cm0r11e0q00022a699lf1bbtx%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522initialSelections%2522%253A%255B%257B%2522startLineNumber%2522%253A31%252C%2522startColumn%2522%253A2%252C%2522endLineNumber%2522%253A31%252C%2522endColumn%2522%253A2%257D%255D%252C%2522filepath%2522%253A%2522%252Fpackage.json%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%255D%252C%2522id%2522%253A%2522cm0r0uhob00022a6axs0b7n6m%2522%252C%2522activeTabId%2522%253A%2522cm0r11e0q00022a699lf1bbtx%2522%257D%252C%2522cm0r0uhob00052a6apuvl2mnu%2522%253A%257B%2522id%2522%253A%2522cm0r0uhob00052a6apuvl2mnu%2522%252C%2522activeTabId%2522%253A%2522cm0r136u0002w2a69525igf4o%2522%252C%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cm0r0uhob00042a6al06iba4i%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522UNASSIGNED_PORT%2522%252C%2522port%2522%253A0%252C%2522path%2522%253A%2522%252F%2522%257D%252C%257B%2522type%2522%253A%2522UNASSIGNED_PORT%2522%252C%2522port%2522%253A0%252C%2522id%2522%253A%2522cm0r136u0002w2a69525igf4o%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%255D%257D%252C%2522cm0r0uhob00032a6aagplpjw9%2522%253A%257B%2522tabs%2522%253A%255B%255D%252C%2522id%2522%253A%2522cm0r0uhob00032a6aagplpjw9%2522%257D%257D%252C%2522showDevtools%2522%253Atrue%252C%2522showShells%2522%253Afalse%252C%2522showSidebar%2522%253Atrue%252C%2522sidebarPanelSize%2522%253A15%257D)
Click on the "Click Me" button multiple times, such that the '500ms' timeout of the promise has passed, and the promise is already resolved, by the time the notification pops up after being inside the queue (I set a limit of 3 notifications at once).
**What is the expected behavior?**
The notification should appear as 'resolved' and not be stuck as 'pending'
**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-scripts": "^5.0.0",
"react-toastify": "10.0.5"
Contributor guide
Assessment
This issue has not been assessed yet.