Skip to content

Latest commit

 

History

History
401 lines (276 loc) · 14 KB

CHANGES.md

File metadata and controls

401 lines (276 loc) · 14 KB

HEAD

  • Allow ? character to be used in basename for browser history (see #564)

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 own deepEqual function for checking state equality

Sep 29, 2016

  • Allow relative pathnames in history.push and history.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 doing history.push('')
  • Automatically clean up bad location descriptors

Sep 10, 2016

  • Added back two-arg form of push and replace

Sep 9, 2016

  • Added history.length, history.location, and history.action properties
  • Added history.index and history.entries properties in memory history
  • Added location.pathname, location.search, and location.hash instead of location.path since this is work most people will always have to do
  • Added parsePath and createPath 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 imports. Use import createHistory from "history/createBrowserHistory" instead of history/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 to import our constants.
  • Switched to using window.history.state in createBrowserHistory instead of sessionStorage.
  • Removed location.state entirely from createHashHistory 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> as basename (#94)
  • Removed dependency on deep-equal

Mar 19, 2016

  • Added history.getCurrentLocation() method
  • Breakage: history.listen no longer calls the callback synchronously once. Use history.getCurrentLocation instead
  • Breakage: location.key on the initial POP is null. Users who relied on this key may immediately use replace to get it back
  • Breakage: location.state is undefined (instead of null) 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 to REPLACE when location.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 and createHref (#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 to history.createLocation

Dec 7, 2015

  • Accept location descriptors in createPath and createHref (#173)
  • Deprecate the query arg to createPath and createHref in favor of using location descriptor objects (#173)

Dec 6, 2015

  • Accept objects in history.push and history.replace (#141)
  • Deprecate history.pushState and history.replaceState in favor of passing objects to history.push and history.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 no basename option is provided (#94)

Oct 25, 2015

  • Add forceRefresh option to createBrowserHistory 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

Oct 5, 2015

  • Give location objects a key by default
  • Deprecate history.setState

Oct 4, 2015

  • Add history.createLocation instance method. This allows history enhancers such as useQueries to modify location 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 to useBeforeUnload history enhancer
  • Deprecate (un)registerTransitionHook
  • Deprecate (un)registerBeforeUnloadHook
  • Fix installing directly from git repo