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.keyto the initial location in memory history - Added ES modules build in
espackage directory - Improve
basenameslash 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-equalinstead of owndeepEqualfunction for checking state equality
Sep 29, 2016
- Allow relative pathnames in
history.pushandhistory.replace(#135)
Sep 29, 2016
- Fixed
createLocationdefaults when using objects instead of strings
Sep 15, 2016
- Add
createLocationto 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
pushandreplace
Sep 9, 2016
- Added
history.length,history.location, andhistory.actionproperties - Added
history.indexandhistory.entriesproperties in memory history - Added
location.pathname,location.search, andlocation.hashinstead oflocation.pathsince this is work most people will always have to do - Added
parsePathandcreatePathhelpers 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
imports. 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
Actionsmodule.location.actionis now just a string. No need toimportour constants. - Switched to using
window.history.stateincreateBrowserHistoryinstead ofsessionStorage. - Removed
location.stateentirely fromcreateHashHistorylocations. - 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
canGoin memory history
Sep 1, 2016
- Added
hashTypeoption 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.queryhas no prototype- Warn about protocol-relative URLs (#243)
- Bugfix: Ignore errors when saving hash history state if
window.sessionStorageis 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
locationsAreEqualto 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.listenno longer calls the callback synchronously once. Usehistory.getCurrentLocationinstead - Breakage:
location.keyon the initial POP isnull. Users who relied on this key may immediately usereplaceto get it back - Breakage:
location.stateisundefined(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.sessionStorageunless 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
PUSHtoREPLACEwhenlocation.statechanges (#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
createPathandcreateHref(#189)
Dec 10, 2015
- Bugfix: Silence all warnings that were introduced since 1.13 (see reactjs/react-router#2682)
- Deprecate the
createLocationmethod in the top-level exports - Deprecate the
statearg tohistory.createLocation
Dec 7, 2015
- Accept location descriptors in
createPathandcreateHref(#173) - Deprecate the
queryarg tocreatePathandcreateHrefin favor of using location descriptor objects (#173)
Dec 6, 2015
- Accept objects in
history.pushandhistory.replace(#141) - Deprecate
history.pushStateandhistory.replaceStatein favor of passing objects tohistory.pushandhistory.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
useBasenametransparently handles trailing slashes (#108)useBasenameautomatically uses the value of<base href>when nobasenameoption is provided (#94)
Oct 25, 2015
- Add
forceRefreshoption tocreateBrowserHistorythat 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
useQuerieshandling 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
locationobjects akeyby default - Deprecate
history.setState
Oct 4, 2015
- Add
history.createLocationinstance method. This allows history enhancers such asuseQueriesto modifylocationobjects when creating them directly - Deprecate
createLocationmethod on top-level exports
Sep 26, 2015
- Fix
location.basenamewhen location matches exactly (#68) - Allow transitions to be interrupted by another
Sep 24, 2015
- Add
useBasenamehistory enhancer - Add
history.listenBefore - Add
history.listenBeforeUnloadtouseBeforeUnloadhistory enhancer - Deprecate (un)registerTransitionHook
- Deprecate (un)registerBeforeUnloadHook
- Fix installing directly from git repo