Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
better-state
Advanced tools
A small wrapper that encapsulates history.pushState and window.onpopstate and offers extra features - including 'No Going Back'
Readme
This is a small wrapper that encapsulates
View the browser history1 for your app.
Prevent the use of the browser's back and forward buttons. ("No Going Back")
Get more information in the onpopstate event, such as whether the back button or forward button was pressed...
Includes the current window.scroll for convenience (useful when using History.scrollRestoration = 'manual')
npm install better-state
import betterState from "better-state";
Preventing the browser back button is a bit of a hack - and definitely not supported by most modern browsers.
Please test thoroughly before using in a production environment.
(Because it's not possible to actually prevent the back button event, better-state forces an immediate history.go(1) )
To change the current browser URL and add to the browser history:
betterState.pushState(url)
betterState.pushState(url,{--some consumer-data})
To prevent the use of the browser's back and forward buttons:
("No Going Back")
betterState.preventBack = true
betterState.preventForward = true
NB - effects of this settings are stacked and cumulative. ie two calls to betterState.preventBack = true
will require two calls to betterState.preventBack = false
to take affect. Use betterState.resetPreventBack()
and betterState.resetPreventForward()
to negate previous calls.
To get the current known history1:
betterState.history
To subscribe to popstate events (i.e. back and forward button clicks...)
betterState.onPopState = (e) => { console.log(e); };
returns:
To unsubscribe
betterState.offPopState();
To override preventBack
and preventForward
:
betterState.forceForward()
betterState.forceBack()
To replace the current state:
(i.e. to change the current URL without adding to the browser history)
betterState.replaceState(url)
betterState.replaceState(url,{--some consumer-data})
To get the current state:
betterState.state
FAQs
A small wrapper that encapsulates history.pushState and window.onpopstate and offers extra features - including 'No Going Back'
The npm package better-state receives a total of 4 weekly downloads. As such, better-state popularity was classified as not popular.
We found that better-state demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.