Jun 20, 2017
- Add main/module entries to package.json (thanks @pshrmn)
Jun 14, 2017
- Rely on the user/browser to encode pathname portion of the URL
- Add more complete basename matching support (case insensitive matching, basename must be a complete match, see #459)
Mar 15, 2017
- Only encode/decode pathname portion of the URL (see #445)
Mar 7, 2017
- Encode/decode URLs
- Added
location.key
to the initial location in memory history - Added ES modules build in
es
package directory - Improve
basename
slash handling (source of a common user error, see #404 and #432)
Jan 9, 2017
- Fix a bug that allowed a history listener to still be called if it was unregistered in another listener
Dec 14, 2016
- Added
history.createHref(location)
for creating hrefs suitable for use in<a href>
Nov 24, 2016
- Fix the back button on Chrome iOS
Nov 1, 2016
- Use
value-equal
instead of owndeepEqual
function for checking state equality
Sep 29, 2016
- Allow relative pathnames in
history.push
andhistory.replace
(#135)
Sep 29, 2016
- Fixed
createLocation
defaults when using objects instead of strings
Sep 15, 2016
- Add
createLocation
to top-level exports - Better warnings
Sep 15, 2016
- Automatically use a leading
/
when doinghistory.push('')
- Automatically clean up bad location descriptors
Sep 10, 2016
- Added back two-arg form of
push
andreplace
Sep 9, 2016
- Added
history.length
,history.location
, andhistory.action
properties - Added
history.index
andhistory.entries
properties in memory history - Added
location.pathname
,location.search
, andlocation.hash
instead oflocation.path
since this is work most people will always have to do - Added
parsePath
andcreatePath
helpers to top-level exports - Removed
history.getCurrentLocation()
Sep 6, 2016
- Fix blocking POP transitions in browsers where listen() has not yet been called
- Use block(false) to prevent transitions
- Better warnings for PUSH with the same path using hash history
Sep 3, 2016
- Easier top-level
import
s. Useimport createHistory from "history/createBrowserHistory"
instead ofhistory/lib/createBrowserHistory
. - Removed the "middleware" API (i.e. all "use" functions).
- Moved path and query parsing out of core. Location objects are now
{ path, state, key }
. Any other parsing can be done outside core. - Removed the
Actions
module.location.action
is now just a string. No need toimport
our constants. - Switched to using
window.history.state
increateBrowserHistory
instead ofsessionStorage
. - Removed
location.state
entirely fromcreateHashHistory
locations. - Removed support for basename in
createMemoryHistory
. - Refactored the test suite. Tests are much more flexible and easier to zero in on one that is failing.
Sep 1, 2016
- Exposed
canGo
in memory history
Sep 1, 2016
- Added
hashType
option to hash history for supporting different hash URL schemes including "hashbang" and no leading slash - Bugfix: Fix URL restoration on canceled popstate transitions
- Better React Native support
May 30, 2016
location.query
has no prototype- Warn about protocol-relative URLs (#243)
- Bugfix: Ignore errors when saving hash history state if
window.sessionStorage
is undefined (#295) - Bugfix: Fix replacing hash path in IE served via file protocol (#126)
Apr 19, 2016
- Lower-cased UMD build file name
Apr 19, 2016
- Added
locationsAreEqual
to top-level exports - Breakage: Removed support for
<base href>
asbasename
(#94) - Removed dependency on
deep-equal
Mar 19, 2016
- Added
history.getCurrentLocation()
method - Breakage:
history.listen
no longer calls the callback synchronously once. Usehistory.getCurrentLocation
instead - Breakage:
location.key
on the initial POP isnull
. Users who relied on this key may immediately usereplace
to get it back - Breakage:
location.state
isundefined
(instead ofnull
) if the location has no state. This helps us know when we need to access session storage and when we can safely ignore it - Bugfix: Hash history now uses a custom query string key/value pair only if
the location has state. This obsoletes using
{ queryKey: false }
to prevent the query string from being used (#163) - Bugfix: Do not access
window.sessionStorage
unless the location has state. This should minimize the # of times we access session storage and allow users to opt-out of using it entirely by not using location state
Feb 4, 2016
- Bugfix: Fix search base logic with an empty query (#221)
- Bugfix: Fail gracefully when Safari 5 security settings prevent access to window.sessionStorage (#223)
Feb 3, 2016
- Bugfix: Don't convert same-path
PUSH
toREPLACE
whenlocation.state
changes (#179) - Bugfix: Re-enable browser history on Chrome iOS (#208)
- Bugfix: Properly support location descriptors in
history.createLocation
(#200)
Jan 9, 2016
- Add back deprecation warnings
Jan 2, 2016
- Bugfix: Don't create empty entries in session storage (#177)
Dec 19, 2015
- Bugfix: Don't throw in memory history when out of history entries (#170)
- Bugfix: Fix the deprecation warnings on
createPath
andcreateHref
(#189)
Dec 10, 2015
- Bugfix: Silence all warnings that were introduced since 1.13 (see reactjs/react-router#2682)
- Deprecate the
createLocation
method in the top-level exports - Deprecate the
state
arg tohistory.createLocation
Dec 7, 2015
- Accept location descriptors in
createPath
andcreateHref
(#173) - Deprecate the
query
arg tocreatePath
andcreateHref
in favor of using location descriptor objects (#173)
Dec 6, 2015
- Accept objects in
history.push
andhistory.replace
(#141) - Deprecate
history.pushState
andhistory.replaceState
in favor of passing objects tohistory.push
andhistory.replace
(#168) - Bugfix: Disable browser history on Chrome iOS (#146)
- Bugfix: Do not convert same-path PUSH to REPLACE if the hash has changed (#167)
- Add ES2015 module build (#152)
- Use query-string module instead of qs to save on bytes (#121)
Nov 13, 2015
- Fail gracefully when Safari security settings prevent access to window.sessionStorage
- Pushing the currently active path will result in a replace to not create additional browser history entries (#43)
- Strip the protocol and domain from
<base href>
(#139)
Oct 28, 2015
useBasename
transparently handles trailing slashes (#108)useBasename
automatically uses the value of<base href>
when nobasename
option is provided (#94)
Oct 25, 2015
- Add
forceRefresh
option tocreateBrowserHistory
that forces full page refreshes even when the browser supports pushState (#95)
Oct 11, 2015
- Un-deprecate top-level createLocation method
- Add ability to use
{ pathname, search, hash }
object anywhere a path can be used - Fix
useQueries
handling of hashes (#93)
Oct 9, 2015
- Fix npm postinstall hook on Windows (#62)
Oct 7, 2015
- Fix listenBefore hooks not being called unless a listen hook was also registered (#71)
- Add a warning when we cannot save state in Safari private mode (#42)
Oct 6, 2015
- Fix hash support (see comments in #51)
Oct 5, 2015
- Give
location
objects akey
by default - Deprecate
history.setState
Oct 4, 2015
- Add
history.createLocation
instance method. This allows history enhancers such asuseQueries
to modifylocation
objects when creating them directly - Deprecate
createLocation
method on top-level exports
Sep 26, 2015
- Fix
location.basename
when location matches exactly (#68) - Allow transitions to be interrupted by another
Sep 24, 2015
- Add
useBasename
history enhancer - Add
history.listenBefore
- Add
history.listenBeforeUnload
touseBeforeUnload
history enhancer - Deprecate (un)registerTransitionHook
- Deprecate (un)registerBeforeUnloadHook
- Fix installing directly from git repo