Cancel componentUnmount when navigating away - reactjs

I would like to give a user notification if they have started an application and are navigating away without saving. Once they click on another tab, the componentWillUnmount function will fire, is there anyway I can cancel it in case a user decides to stay on the same form?

Since you are using React Router, see Confirming Navigation.

Related

Is it possible in React to go back page if I didn't use react-router routes?

I made a page with the same url all the time. I show my div by hiding and showing components, but no route. So, now I need the user can go back page using the back arrow of the explorer. Is there any possibility?
The back button of the browser change the window history :
https://developer.mozilla.org/fr/docs/Web/API/Window/history
So i don't think you can link the browser back btn to a javascript variable and prevent his effect on history
You can find on the net solution where people force history.forward() when back btn is pressed, you can change your variable here. But it's a bit dirty
How can I stop the browser back button using JavaScript?

How to trigger a delayed function call after you have navigated away from the page in React

So I have a really ask but the implementation is eluding me.
I want to simulate the completion of a task in the background in our product demo.
The User Journey :
Arrive at the home page
Click button on the home page -> Button goes into loading state (button replaced by loading animation)
We continue on with the demo and navigate away
We want to come back to the home page after "execution complete" .
Well how do we know if execution is complete ? Well that's where this delayed alert I'm trying to implement comes in. I'd like an alert to be sent out , regardless of what page I am on in the app after some x minutes/seconds of clicking that button.
Any ideas on how I would go about doing this ?
I am trying with redux-toolkit but so far it's only working on the page itself and
if I return to the page after navigating away.
This can be done in two ways,
elevate the state to the point which covers both home page and all the navigation pages, Use react context API to pass data and use useEffect hook to track task completion and do the need full.
Use native javascript to trigger custom event and add an event listner to it Read more about curtom events here
Although this is all just theory, I can help more after viewing the code.

Web Page Refreshing on keyboard pop

I have implemented a login page in React and Material UI. When using in mobile, on certain phones the page refreshes automatically as soon as focus from one textfield goes away, and in another scenario, as soon as the keyboard pops up it refreshes. Anyone who has faced a similar issue, or any clue why this could be happening.
I tried calling the preventDefault method for onBlur event, but no change. Couldn't think of anything else, since observed the issue on some devices and not on others

How to detect back navigation triggered by swiping and stop it on iOS?

I have a form in my react native app. When a user tries to fill it and tries to navigate back without saving it. I would like to show an alert to confirm this action. If the user decides to submit this form, the triggered back action must be canceled. On Android, the back button can be controlled with an event listener. But how can we achieve that on iOS using react navigation?
It's not possible currently. However, you could disable the swipe gesture on the screen instead.

trigger angular event/function when user clicks back on browser

I don't need any routing, location or window.history change, just prevent default and insert my own function instead.
It's also important that the back button will be clickable when the app starts.
It seems so simple but somehow i can't write/find a simple solution...

Resources