Skip to content

v7.0.1

Compare
Choose a tag to compare
@paulmarsicloud paulmarsicloud released this 01 Jun 19:29
· 9 commits to main since this release
07eced3

Patch Changes

  • Adding GitHub release workflow (#328)
    New Features:
  • add new swipeDuration prop - "allowable duration of a swipe"
    • A swipe lasting more than swipeDuration, in milliseconds, will not be considered a swipe.
    • Defaults to Infinity for backwards compatibility
  • add new touchEventOptions prop that can set the options for the touch event listeners
    • this provides users full control of if/when they want to set passive
    • Defaults to { passive: true }
  • add new onTouchStartOrOnMouseDown prop that is called for touchstart and mousedown. Before a swipe even starts.
    • combined with touchEventOptions allows users the ability to now call preventDefault on touchstart
  • add new onTouchEndOrOnMouseUp prop that is called for touchend and mouseup.
  • add react 18 to peerDependencies

Breaking Changes:

  • we have dropped support for es5 transpiled output
    • we target es2015 for our transpilation now
      • swipeable utilizes object/array spread & const/let natively
  • preventScrollOnSwipe - "new" prop. Replaces preventDefaultTouchmoveEvent
    • same functionality but renamed to be more explicit on its intended use
    • fixed bug - where toggling this prop did not re-attach event listeners
    • update - we now only change the passive event listener option for touchmove depending on this prop
    • Thank you @stefvhuynh

Bug fixes:

  • fix bug where directional swiped check allowed undefined/falsy values to set cancelablePageSwipe
  • fix bug when both trackTouch and trackMouse were present that triggered an erroneous swipe when the user clicked outside and above the swipeable area

Infrastructure:

  • post size-limit report to PRs with bundle diff sizes
  • utilize rollup for build & output
    • remove dependency on microbundle
    • remove interop injected code - pull/260
    • Thank you @binoy14
  • upgrade lots of dev dependencies
    • 🎉 upgrade to typescript v4.6.3
  • export/outputs housekeeping and cleaning (mimicked from react-redux)
    • removed/renamed exports from package.json:
      • browser, umd:main(renamed dist), jsnext:main(use module), typings(use types)
    • moved exports - old => new
      • "main": "./dist/react-swipeable.js" => "main": "./lib/index.js"
      • "module": "./dist/react-swipeable.module.js" => "module": "es/index.js"
      • "types": "./dist/index.d.ts" => "types": "./es/index.d.ts"

v6.2.2

  • add react v18 to peerDependencies

v6.2.1

  • Fix issue with some config properties being set to undefined breaking swipeable
    • PR #296
    • explicitly set undefined config props to config defaults
    • Thank you @simonflk

v6.2.0

  • delta prop can now be an object specifying different values for each direction
  • Maintenance
    • upgrade to latest version of microbundle
      • remove comments from built files
        • attempt to lower size to counter unnecessary increase from microbundle upgrade due to rollup output.interop
      • include type updates influenced by PR #259
    • dependabot security updates

v6.1.2

  • Maintenance
    • actually include dependabot security updates
    • update badge links

v6.1.1

  • Maintenance
    • dependabot security updates
    • Migrate to github actions, remove travis, update badges
    • Update examples and provide link via codesandbox

v6.1.0

  • Add new event handler prop onSwipeStart

    • called only once per swipe at the start and before the first onSwiping callback
      • The first property of the SwipeEventData will be true
    • PR #226
    • Thank you @feketegy for the idea!
  • typescript updated to v4.1.3 and associated deps bumped to be compatible

v6.0.1

  • Fix issue with first property on SwipeEventData always being true.

v6.0.0

New Features:

  • include passive event listener option, by default, to internal uses of addEventListener
  • add new onTap event handler prop which executes its callback after a tap
  • add new vxvy event data property
    • [ deltaX/time, deltaY/time] - velocity per axis
    • Thank you @upatel32!

Breaking Changes:

  • remove <Swipeable> component
  • event data update correctly calculate deltaX and deltaY
    • from initial - current to current - initial
    • fixes issue #157
    • Thank you @upatel32!
  • drop support for ie11
    • using addEventListener options object needs to be polyfilled, browser support
  • requires react >= 16.8.3, additionally supports new react v17

Bug fixes:

  • Swipes can now start at edges (x or y === 0)

Infrastructure:

  • typescript Converted entire code base, tests, and examples to typescript
    • changed type EventData -> SwipeEventData - The event data provided for all swipe event callbacks
    • removed type SwipeableOptions - use SwipeableProps now
    • removed types associated with <Swipeable> component
    • new type TapCallback - callback for the new onTap prop handler
    • new type SwipeDirections - "Left" | "Right" | "Up" | "Down"
  • Converted tests to @testing-library/react, react testing library
  • Build bundles with microbundle. microbundle

Maintenance:

  • Upgraded all dev dependencies, jest, babel, webpack, eslint, prettier

5.5.0

5.4.0

  • Add initial property to eventData that supplies the inital [x, y] swipe value coordinates issue #150 and PR #131

5.3.0

5.2.3

5.2.2

5.2.0

5.1.0

  • Fix for preventDefaultTouchmoveEvent in safari issue #127 and PR #131
    • Thank you @JiiB and @bhj!
    • use ref callback for both <Swipeable> and useSwipeable to attach all touch event handlers
      • useSwipeable's returned handlers now contains a ref callback
      • Please see disscusion and comments in both #127 and #131 for more details and info.
        • fix avoids the passive: true issue from chrome document event listeners
        • fix avoids bug on safari where the touchmove event listener needs to be attached before a touchstart in order to be able to call e.preventDefault
  • removed touchHandlerOption prop
    • fix above deprecates this prop

5.0.0

  • Introduce react hook, useSwipeable
  • Core rewrite to simplify api and trim down bundled size
  • Add size-limit to help keep bundled size down
  • Add es export via "module": "es/index.js" to package.json
  • Add prettier code formating
  • [BREAKING] simplify handler event data to allow destructuring
    • onSwiped = ({ event, direction, absX, absY, velocity}) => console.log('swiped')
  • [BREAKING] deprecated onSwiping{Left|Right|Up|Down} handler props
    • can be replaced with direction/dir event data
    • onSwiping = ({ dir }) => console.log(`swiping - ${dir}`)
  • [BREAKING] deprecated props
    • flickThreshold
    • stopPropagation
    • disabled
  • [BREAKING] deprecated passing "rest" of props down
    • removed additional props besides the ones used by <Swipeable> from being passed down
      • only className and style get passed to <Swipeable>'s dom node, default div

4.3.0

  • Add rotationAngle prop. #103
    • will allow to set a rotation angle, e.g. for a four-player game on a tablet, where each player has a 90° turned view.
    • Thank you @Narquadah and @LarsKumbier!

4.2.2

  • fixed bug that happened when if either onSwiping or onSwiped were set we were not calling e.preventDefault() appropriately

4.2.0

  • Add support for calling preventDefault on Chrome 56+ via passive event support checking and manual event listener setup. #88

4.1.0

  • add disabled prop. #83
  • add innerRef prop that allows user to access to <Swipeable>'s inner dom node react ref. #82

4.0.1

  • fixed bug where delta was causing a swipe to not be tracked correctly, #74 , thanks @mctep

4.0.0

  • Major Change preventDefaultTouchmoveEvent defaults to false now #69
  • Major Change drop support for React 12 & 13, peerDependencies updated #64
    • prop-types added to dependencies #64
  • Major Change trackMouse now 'tracks' the swipe outside of the swipeable component, #67.
  • react 16 added to peerDependencies

3.9.0

3.8.0

  • Allow onMouseDown, onMouseUp, and onMouseMove props to fire appropriately again. #55, thanks @lochstar
  • Stop using this.state to track swipes, thanks @grantila for pointing out this change and submitting PR, #58. Should provide minor performance gains since Swipeable will no longer be calling this.setState internally.

3.7.0

3.6.0

  • add stopPropagation prop for all swipe events, defaults to false. See #46 for more info.

3.5.1

  • fix React 15.2.0 warning for unknown properties on DOM elements

3.5.0

  • Add configurable container element via nodeName prop, defaults to 'div'. See #24 and #40 for more info.

3.4.0

  • Add preventDefault while swiping when props onSwipedLeft, onSwipedRight, onSwipedUp, and onSwipedDown are present. See #21 and #37 for more info.

3.3.0

  • Adds velocity data to onSwiping callback
  • Updated the build process introducing ES2015 and babel

3.2.0

  • Adds preventDefaultTouchMoveEvent option, defaults to true

3.1.0

  • Adds isFLick to onSwipe events
  • Removes React as a peer dep
  • Adds onSwiping events

3.0.2

  • Fixes onSwipeDown and onSwipeUp events

3.0.1

  • Fixes vertical swiping

3.0.0

  • Refactors build into jsx.

2.1.0

  • Adds onSwipedUp, onSwipedRight, onSwipedDown, onSwipedLeft callbacks.

2.0

  • onFlick prop has been removed.

  • onSwipe now has a 4th argument for the callback Boolean isFlick

  • Added a prop flickThreshold which allows you to customize at what velocity a flick is detected.