Skip to content

Latest commit

 

History

History
267 lines (197 loc) · 15.9 KB

CHANGELOG.md

File metadata and controls

267 lines (197 loc) · 15.9 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[Unreleased]

Changed

  • Added styleOptions.stylesRoot property which allows to specify a container node component styles will be placed into, by @OEvgeny in PR #137

[4.2.0] - 2021-10-14

Changed

[4.1.2] - 2021-05-17

Changed

Fixed

  • Fixed #90. Added @babel/runtime-corejs3 and core-js@3 for transforming for Internet Explorer 11, by @compulim, in PR #93.

[4.1.1] - 2021-05-13

Added

  • Added a test harness, in PR #85

Fixed

  • Fixed #75. If debug is set, it will show debug in console log. If not specified, it will fallback to NODE_ENV === 'production', in PR #77.
  • Fixed #84. Fixed a race condition: while under heavy load, sticky, and at the end, calling useScrollTo() to any positions, the scroll view may scroll back to the bottom immediately, in PR #85

[4.1.0] - 2021-01-03

Added

  • Added scroller prop for limiting scroll distance when mode is set to bottom, in PR #73
  • Added initialScrollBehavior prop for first scroll behavior. When set to "auto" (discrete scrolling), it will jump to end on initialization. in PR #73
  • Added debug prop for dumping debug log to console, in PR #73
  • Improved performance by separating StateContext into 2 tiers, in PR #73

Fixed

  • Emptying container should regain stickiness, in PR #73

[4.0.0] - 2020-09-01

Added

Changed

  • Moved from glamor@2.20.40 to create-emotion@10.0.27, in PR #62

[3.0.0] - 2020-06-21

Breaking changes

  • scrollToBottom/scrollToEnd/scrollToStart/scrollToTop now accept an option { behavior: 'auto' | 'smooth' }
    • Without the option, it is by default to artificial smooth scrolling (smooth), to keep existing behavior
    • This behavior may change in the future, by defaulting to discrete scrolling (auto), to better align with HTML DOMElement.scrollIntoView standard
    • During the transition, please always pass { behavior: 'smooth' } to keep existing behavior

Changed

Added

  • Added version number to <meta name="react-scroll-to-bottom:version"> for diagnostic purpose, in PR #51
  • Added useAnimatingToEnd getter to indicate if it is animating towards to the end, in PR #49
    • The existing useAnimating getter only indicate if it is animating to any scroll positions
  • Added scrollTo function to scroll to a specific scrollTop value, this is similar to DOMElement.scrollIntoView(), in PR #49
    • The signature is scrollTo(scrollTop: number, options: { behavior: 'auto' | 'smooth' })
    • Pass { behavior: 'smooth' } for synthetic smooth scrolling
  • Added useObserveScrollTop hook to observe scroll event, in PR #49
    • This effect function will be called rapidly on scroll, please avoid expensive code such as calling setter of useState and any code that would cause re-render

Fixed

  • Cancel scroll animation on mouse wheel or touch gesture, in PR #49
  • Calling scrollTo should cancel any existing scroll animation, in PR #49

[2.0.0] - 2020-05-07

Breaking changes

  • We moved to React Hooks and it requires React 16.8.6 or up
    • Hooks will allow us to write simpler and more maintainable code
    • Developers can use our React Hooks to perform various operations

Changed

Added

Fixed

  • Fix atStart was not reporting correctly, in PR #31
  • Chrome: Fix scroll to bottom button should hide when using TAB to scroll the bottommost button into view, in PR #46

[1.3.2] - 2019-06-20

Changed

  • *: bumped to babel-jest@24.8.0, lerna@3.15.0, and jest@24.8.0, in PR #22

Fixed

  • Composer: fix #22, synthetic scroll events crafted by Chrome should not cause stickiness to lose, in PR #23

[1.3.1] - 2019-02-13

Changed

  • Composer: fix #13, user scrolling in Firefox may have the scroll position locked occasionally, in PR #12
  • SpineTo: fix #10, set stopping threshold from 0.5 to 1.5, in PR #14
  • Composer: fix #15, set near-end threshold from 0 to (less than) 1, in PR #16

[1.3.0] - 2019-01-21

Changed

  • Playground: bumped to react@16.6.0, react-dom@16.6.0, and react-scripts@2.1.6
  • *: Update algorithm, instead of using componentDidUpdate, we now use setInterval to check if the panel is sticky or not, this help to track content update that happen outside of React lifecycle, for example, HTMLImageElement.onload event
  • Composer: scrollTo() now accepts "100%" instead of "bottom"

Removed

  • Removed threshold props because the algorithm is now more robust

[1.2.0] - 2018-10-28

Added

  • AutoHideFollowButton: will now hide when it start animating scroll position
  • BasicScrollToBottom: will now pass debounce and threshold to Composer, fix #2
  • Composer: debounce prop to control debouncing on onScroll event, default to 17
  • FunctionContext: scrollTo now support "bottom", in addition to a number, fix #1
    • This will help when animating scroll position while new content was added to the panel
  • FunctionContext: scrollToStart function to scroll to the start, depends on mode
  • StateContext: animating returns true if the scroll position is being animated
  • StateContext: atStart indicates if the scroll position is at the start or not, depend on mode

Changed

  • Performance improvements
    • Context is now separated into FunctionContext, InternalContext and StateContext for better performance and reduce exposure
      • FunctionContext is static and only hold functions for manipulating the panel
      • InternalContext is static and for internal use (to overcome shortcomings of React.createRef)
      • StateContext is dynamic and change when scroll position change
    • StateContext will now only update if there are any meaningful changes
  • Added displayName to context
  • lerna bumped from 2.11.0 to 3.4.3

[1.1.0] - 2018-06-22

Added

  • Container class name

[1.0.0] - 2018-06-17

Added

  • Initial release