Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-pannable

Package Overview
Dependencies
Maintainers
1
Versions
105
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-pannable

Simulate pan gesture and scroll view for touch devices with React

  • 0.8.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
67
decreased by-34.31%
Maintainers
1
Weekly downloads
 
Created
Source

react-pannable

Simulate pan gesture and scroll view for touch devices with React

npm version npm license

Getting started

Install react-pannable using npm.

npm install --save react-pannable

Examples

All the examples!

Some Pannable demos

Some Pad demos

API Reference

Pannable

Pannable provides a pan gesture simulation on recent mobile browsers for iOS and Android. It can also be used on mouse-base devices across on all evergreen browsers.

type Point = { x: number, y: number };
type PanEvent = {
  translation: Point,
  velocity: Point,
  interval: number,
  target: HTMLElement,
};
Prop Types
PropertyTypeDefaultValueDescription
enabledbooleantrueIndicate whether the gesture listener is enabled. If you change this property to false while the gesture is listening, the gesture transitions to cancel.
shouldStartfunction() => trueWhether to start gesture listening. : (evt: PanEvent) => void
onStartfunction() => {}Callback invoked when the gesture starts listening.: (evt: PanEvent) => void
onMovefunction() => {}Callback invoked when the gesture moves.: (evt: PanEvent) => void
onEndfunction() => {}Callback invoked when the gesture ended listening.: (evt: PanEvent) => void
onCancelfunction() => {}Callback invoked when the gesture cancelled.: (evt: PanEvent) => void

Pad

Pad provides a scrollable content component on which overflow scrollbars are not natively supported. It also provides paging scroll implementation and multiple content layout mode.

type Point = { x: number, y: number };
type Size = { width: number, height: number };
type Rect = { x: number, y: number, width: number, height: number };
type AlignEnum = 'auto' | 'center' | 'start' | 'end' | number;
type Align = { x: AlignEnum, y: AlignEnum } | AlignEnum;
type PadEvent = {
  contentOffset: Point,
  contentVelocity: Point,
  dragging: boolean,
  decelerating: boolean,
  size: Size,
  contentSize: Size,
};
Prop Types
PropertyTypeDefaultValueDescription
childrenelement,functionnullRendered content. Can be a render function, or a rendered element.:(pad: Pad) => element
widthnumber0The width of the bounding view.
heightnumber0The height of the bounding view.
contentWidthnumber0The suggested width of the content view.
contentHeightnumber0The suggested height of the content view.
scrollEnabledbooleantrueDetermines whether scrolling is enabled.
pagingEnabledbooleanfalseDetermines whether paging is enabled.
directionalLockEnabledbooleanfalseDetermines whether scrolling is disabled in a particular direction.
alwaysBounceXbooleantrueDetermines whether bouncing always occurs when horizontal scrolling reaches the end of the content.
alwaysBounceYbooleantrueDetermines whether bouncing always occurs when vertical scrolling reaches the end of the content.
onScrollfunction() => {}Callback invoked when the content view scrolls.:({evt: PadEvent}) => void
onResizefunction() => {}Callback invoked when the bounding view resize.:(size: Size) => void
onContentResizefunction() => {}Callback invoked when the content view resize.:(size: Size) => void
Public Methods
scrollTo({ offset: Point, animated: boolean })

Sets the offset from the content view’s origin.

scrollToRect({ rect: Rect, align: Align, animated: boolean })

Scrolls a specific area of the content so that it is visible.

AutoResizing

AutoResizing automatically expands the size of the bounding view.

type Size = { width: number, height: number };
Prop Types
PropertyTypeDefaultValueDescription
childrenelement,functionnullThe render function passing computed width and height.:(size: Size) => element
widthnumbernullThe width of the content. If not specified, it expands the width of the bounding view.
heightnumbernullThe height of the content. If not specified, it expands the height of the bounding view.
onResizefunction() => {}Callback invoked when the content resize.:(size: Size) => void

GeneralContent

GeneralContent automatically shrinks the size of the content.

type Size = { width: number, height: number };
Prop Types
PropertyTypeDefaultValueDescription
widthnumbernullThe width of the content. If not specified, it shrinks the width of the content.
heightnumbernullThe height of the content. If not specified, it shrinks the height of the content.
onResizefunction() => {}Callback invoked when the content resize.:(size: Size) => void

GridContent

GridContent displays data in multiple rows and columns with the same size.

type Size = { width: number, height: number };
type Rect = { x: number, y: number, width: number, height: number };
type LayoutAttrs = {
  itemIndex: number,
  rowIndex: number,
  columnIndex: number,
  rect: Rect,
  visibleRect: Rect,
};
Prop Types
PropertyTypeDefaultValueDescription
direction'x','y''y'The direction of the grid.
widthnumber0The suggested width of the content.
heightnumber0The suggested height of the content.
rowSpacingnumber0The minimum spacing to use between rows of items in the grid.
columnSpacingnumber0The minimum spacing to use between columns of items in the grid.
itemCountnumber0The number of items.
itemWidthnumber0The width of the item.
itemHeightnumber0The height of the item.
renderItemfunction() => nullThe renderer of the item.:(attrs: LayoutAttrs) => element
visibleRectRect{ x: 0, y: 0, width: 0, height: 0 }The area of the visible content.
onResizefunction() => {}Callback invoked when the content resize.:(size: Size) => void
Public Methods
getItemRect({ itemIndex: number, rowIndex: number, columnIndex: number })

Returns the area of item at the specified indexes.

ListContent

ListContent displays data in a single line of customizable items.

type Size = { width: number, height: number };
type Rect = { x: number, y: number, width: number, height: number };
type LayoutAttrs = {
  itemIndex: number,
  rect: Rect,
  visibleRect: Rect,
  Item: ItemContent,
};
Prop Types
PropertyTypeDefaultValueDescription
direction'x','y''y'The direction of the list.
widthnumber0The suggested width of the content.
heightnumber0The suggested height of the content.
spacingnumber0The minimum spacing to use between items in the list.
itemCountnumber0The number of items.
estimatedItemWidthnumber0The estimated width of the item.
estimatedItemHeightnumber0The estimated height of the item.
renderItemfunction() => nullThe renderer of the item.:(attrs: LayoutAttrs) => element
visibleRectRect{ x: 0, y: 0, width: 0, height: 0 }The area of the visible content.
onResizefunction() => {}Callback invoked when the content resize.:(size: Size) => void
Public Methods
getItemRect({ itemIndex: number })

Returns the area of item at the specified index.

ItemContent

ItemContent fits the size of the content by hash.

type Size = { width: number, height: number };
Prop Types
PropertyTypeDefaultValueDescription
widthnumbernullThe width of the content. If not specified, it shrinks the width of the content.
heightnumbernullThe width of the content. If not specified, it shrinks the width of the content.
hashstring''The hash of the content. if this property changes, the content size recalculates.
getSizeByHashfunction() => nullThe content size getter by hash.:(hash: string) => Size
onResizefunction() => {}Callback invoked when the content resize.:(size: Size, hash: string) => void

License

MIT License

Keywords

FAQs

Package last updated on 29 Mar 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc