Comments (4)
I don't exactly know what you mean by "history integration", but I think I might have understood two things:
Being able to navigate back in browsing history through the router
Going back in the browsing history is something only the user should do. There is no point for a program logic to do so. If you want to go "back" from a product detail page to the overview for example, you simply navigate "forward" to the overview. Going back would only confuse the user because when he moved from product detail to overview and clicks "back" in his browser, he won't get to the product details again. This is bad.
Preventing the user to navigate away from a certain route
This one, I am not sure about. It is very annoying if an application does this. But its also annoying if you lose some data because you just navigated away without saving. I would advise to preserve the data in sessionStorage and offer the user to restore it if he comes back to the form in question. This is more userfriendly than slapping a confirm into the face when he intentionally tries to navigate somewhere. In the rare case that he unintentionally moves away, the data is secure.
from hookrouter.
Going back in the browsing history is something only the user should do. There is no point for a program logic to do so. If you want to go "back" from a product detail page to the overview for example, you simply navigate "forward" to the overview.
I would argue about that. Simply imagine PWA application running on a tablet. There is no browser back button. You want to have that button in your UI.
I would advise to preserve the data in sessionStorage and offer the user to restore it if he comes back to the form in question.
As much as the ideal that sounds, in multi-tenant application it can also mean ugly collisions. You start editing a form, don't save the data. Later someone else edits the same thing, saves it. You come back even later and you still have old data there and upon saving you would overwrite previously saved data. Collaboration is always ugly, no argue there, but I would rather prevent some scenarios, not to give tools for more problems. Even though it means worse UX.
from hookrouter.
The secound part would be solved through #10
from hookrouter.
Closing this in favor of #10
from hookrouter.
Related Issues (20)
- Native Typescript HOT 1
- Rendering Issue HOT 3
- BUG: query string is wiped out when navigate() is called with path only
- Direct navigation doesn't seem to work with GH Pages HOT 1
- Typescript error: index.d.ts file is missing HOT 8
- Support React 17 HOT 2
- Problem when using ListItem Material ui HOT 2
- React components using useRef hook break
- component rendering issue with react.strictmode HOT 1
- inside setLinkProps preventDefault sometimes does not stop navigation
- navigate() does not keep queryparameter even with fourth argument set to false HOT 3
- Import returning error "is not a module" when try to use hookrouter with CRA + typescript HOT 2
- TypeError: match is not a function
- Function to get the matched route outside of React (SSR)
- Navigate doesn't refresh useRoutes HOT 3
- Using Material UI Sidebar
- routing clears parent app state, how to maintain state while using this module?
- use hookrouter with react-redux
- Mark repo as archived if no longer updating 😄 HOT 3
- Application won't deploy on Heroku due to hookrouter HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hookrouter.